pycharm可以寫java嗎,Python與JavaWeb的第一次碰撞

 2023-10-05 阅读 32 评论 0

摘要:在Python中向服務器提交一個表單數據看起來是很容易的,但是這次經歷著實讓我記憶深刻,借此也為了警醒同樣遇到了這樣問題的你們。 要做什么? 使用Python的urllib2模塊提交表單數據,并在服務器端進行驗證提交的表單結果。 pycharm可以寫java嗎、操

在Python中向服務器提交一個表單數據看起來是很容易的,但是這次經歷著實讓我記憶深刻,借此也為了警醒同樣遇到了這樣問題的你們。


要做什么?

使用Python的urllib2模塊提交表單數據,并在服務器端進行驗證提交的表單結果。

  • pycharm可以寫java嗎、操作系統
    Windows 7 旗艦版

  • 需要的編譯器:

    • Eclipse
    • PyCharm
  • 需要的技術:
    • (基礎的)Java web技術
    • (基礎的)Python

服務器端代碼

服務器端采用JavaWeb技術創建,使用Servlet來接收表單數據。具體內容如下:

java、首先是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">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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 stubresponse.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,urllib2def 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 contentCommonWay()
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汗
  • 多多的寫代碼,多多的測試,才能比較扎實的掌握。而不要圖快,這樣基礎根本打不牢固。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/118421.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息