Python与JavaWeb的第一次碰撞
2016-05-12 19:56
555 查看
在Python中向服务器提交一个表单数据看起来是很容易的,但是这次经历着实让我记忆深刻,借此也为了警醒同样遇到了这样问题的你们。
操作系统
Windows 7 旗舰版
需要的编译器:
Eclipse
PyCharm
需要的技术:
(基础的)Java web技术
(基础的)Python
首先是index.html:
然后是action对应的servlet界面。GetParameters.java
最后就是web.xml的配置文件(我这里偷了个懒,老是记错配置,所以就在tomcat的一个sample 下面抄了一个,然后改了改,就成了)
但其实最重要的就是服务器端的处理结果了。
我们可以在Eclipse的控制台清楚的看到我们提交的表单数据。至于要对这些数据做什么样的操作,就不是今天要讲的内容了。
对一个知识点要学的深入一点,而不只是停留在表面
少犯一些低级错误,比如我今天这个URL竟然都给弄错了。⊙﹏⊙b汗
多多的写代码,多多的测试,才能比较扎实的掌握。而不要图快,这样基础根本打不牢固。
要做什么?
使用Python的urllib2模块提交表单数据,并在服务器端进行验证提交的表单结果。操作系统
Windows 7 旗舰版
需要的编译器:
Eclipse
PyCharm
需要的技术:
(基础的)Java web技术
(基础的)Python
服务器端代码
服务器端采用JavaWeb技术创建,使用Servlet来接收表单数据。具体内容如下:首先是index.html:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <form action="GetParameters" method="POST"> <br> UserName : <input type="text" name= "username"><br> Password : <input type="password" name = "password"><br> <br> <input type= "submit" value="Submit"> <input type="reset"> </form> </body> </html>
然后是action对应的servlet界面。GetParameters.java
package one; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class GetParameters extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public GetParameters() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse * response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.getWriter().append("Served at: ").append(request.getContextPath()); doPost(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub // doGet(request, response); String username = request.getParameter("username"); String password = request.getParameter("password"); System.out.println("Username is : " + username); System.out.println("Password is : " + password); response.getOutputStream().write("I have received you request!".getBytes()); } }
最后就是web.xml的配置文件(我这里偷了个懒,老是记错配置,所以就在tomcat的一个sample 下面抄了一个,然后改了改,就成了)
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>Test</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>GetParameters</servlet-name> <servlet-class>one.GetParameters</servlet-class> </servlet> <!-- ... --> <servlet-mapping> <servlet-name>GetParameters</servlet-name> <url-pattern>/GetParameters</url-pattern> </servlet-mapping> </web-app>
Python端代码
额,我姑且称之谓测试端吧。代码很简单,如下:# coding:UTF-8 import sys,urllib,urllib2 def CommonWay(): url = 'http://localhost:8080/Test/GetParameters' params = { 'username':'Username', 'password':'Password' } data = urllib.urlencode(params) req = urllib2.Request(url,data) response = urllib2.urlopen(req) content = response.read() print content CommonWay() print "Succeed!"
运行结果
Python控制台的输出结果是这样的D:\Software\Python2\python.exe E:/Code/Python/GetWeather/ulib2/SubmitData.py I have received you request! Succeed! Process finished with exit code 0
但其实最重要的就是服务器端的处理结果了。
我们可以在Eclipse的控制台清楚的看到我们提交的表单数据。至于要对这些数据做什么样的操作,就不是今天要讲的内容了。
总结
今天的收获很多,作为一个学习Python的新手,我坚信现阶段遇到的问题越多,进步的也就会越快。对一个知识点要学的深入一点,而不只是停留在表面
少犯一些低级错误,比如我今天这个URL竟然都给弄错了。⊙﹏⊙b汗
多多的写代码,多多的测试,才能比较扎实的掌握。而不要图快,这样基础根本打不牢固。
相关文章推荐
- Python核心编程 第九章练习
- Python与JavaWeb的第一次碰撞
- NumPy数组(1、数组初探)
- python 缺少 setuptools
- 如何用python一个字一个字的输出汉字
- 哪些 Python 库让你相见恨晚?
- Python代码块批量添加Tab缩进
- Python数据类型转换
- 计算Python Numpy向量之间的欧氏距离
- Python多线程中的join函数的使用与含义
- 利用Python实现简单的相似图片搜索的教程
- DataNitro: 用Python高效处理Excel数据
- python pickle模块
- Python学习总结一:环境搭建及基本使用
- python并发编程之多进程、多线程、异步和协程
- 文章标题
- Python的lambda匿名函数
- Python3发送post请求,自动记住cookie
- 【python】python中的字符串及其格式化
- Python基础学习笔记3 - list 和 str 的区别,转化,list解析