Java中前台JSP請求Servlet實例(http+Servlet)


1、前台jsp代碼 himily.jsp,定義了用戶名和密碼兩個輸入框,使用post方式提交:/order-web/HimilyServlet其中order-web為站點名稱,HimilyServlet為servlet訪問路徑

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Welcome to here</title>
</head>
<body>
    <form action="/order-web/HimilyServlet" method="Post">
        用戶名:<input type="text" value="請輸入用戶名" name="user" size="20px"><br>
        密碼:<input type="password" value="請輸入密碼" name="pswd" size="20px"><br>
        
        <input type="submit" value="提交" size="10px">
    </form>
</body>
</html>
himily.jsp


 

2、servlet層代碼:MyServlet.java

新建MyServlet並且指定servlet的路徑為/HimilyServlet

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>



  <display-name>Archetype Created Web Application</display-name>
  <servlet>
      <servlet-name>OrderServlet</servlet-name>
      <display-name>OrderServlet</display-name>
      <description></description>
      <servlet-class>com.suning.logistics.order.web.OrderServlet</servlet-class>
  </servlet>
  <servlet>
      <servlet-name>QueryOrder</servlet-name>
      <display-name>QueryOrder</display-name>
      <description></description>
      <servlet-class>com.suning.logistics.order.web.QueryOrder</servlet-class>
  </servlet>
  <servlet>
      <servlet-name>MyServlet</servlet-name>
      <display-name>MyServlet</display-name>
      <description></description>
      <servlet-class>com.suning.logistics.order.web.MyServlet</servlet-class>
  </servlet>
  <servlet-mapping>
      <servlet-name>OrderServlet</servlet-name>
      <url-pattern>/OrderServlet</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
      <servlet-name>QueryOrder</servlet-name>
      <url-pattern>/QueryOrder.do</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
      <servlet-name>MyServlet</servlet-name>
      <url-pattern>/HimilyServlet</url-pattern>
  </servlet-mapping>

</web-app>
web.xml

 

MyServlet.java代碼,這里是接受客戶端的請求以及處理后的響應

 方法一:

Map<String,String[]> ps = request.getParameterMap();

獲取客戶端的所有請求參數的Key和Value值存入一個Map中,並且Value是數組類型,便於有相同key的時候組成二維數組

 1 package com.suning.logistics.order.web;
 2 
 3 import java.io.IOException;
 4 import java.io.PrintWriter;
 5 import java.security.Principal;
 6 import java.util.Map;
 7 
 8 import javax.servlet.ServletException;
 9 import javax.servlet.http.HttpServlet;
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
12 
13 /**
14  * Servlet implementation class MyServlet
15  */
16 public class MyServlet extends HttpServlet {
17     private static final long serialVersionUID = 1L;
18        
19     /**
20      * @see HttpServlet#HttpServlet()
21      */
22     public MyServlet() {
23         super();
24         // TODO Auto-generated constructor stub
25     }
26 
27     /**
28      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
29      */
30     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
31         try{
32         //System.out.println("himily's servlet!");
33         //response.getWriter().write("aaaa");
34         request.setCharacterEncoding("utf-8");    
35         response.setContentType("text/html;charset=utf-8");
36         String user = request.getParameter("user");
37         String pswd = request.getParameter("pswd");
38         response.setStatus(200);
39         PrintWriter pw=response.getWriter();
40         pw.write("<html><body><p>登錄成功!\n你輸入的用戶名為:"+user+"\n你輸入的密碼為:"+pswd+"</p></body></html>");
41         pw.close();
42         }catch(Exception e){
43             response.getWriter().write(e.toString());
44         }
45             
46         
47     }
48 
49     /**
50      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
51      */
52     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
53         // TODO Auto-generated method stub
54         //doGet(request,response);
55         Map<String,String[]> ps = request.getParameterMap();
56         request.setCharacterEncoding("utf-8");    
57         response.setContentType("text/html;charset=utf-8");
58     //    String user = request.getParameter("user");
59     //    String pswd = request.getParameter("pswd");
60         response.setStatus(200);
61         PrintWriter pw=response.getWriter();
62         pw.write("<html><body><p>登錄成功!\n你輸入的用戶名為:"+ps.get("user")[0]+"\n你輸入的密碼為:"+ps.get("pswd")[0]+"</p></body></html>");
63         pw.close();
64     }
65 
66 }
MyServlet.java

 

方法二:

  //獲取客戶端POST參數的值
  String user = request.getParameter("user");
  String pswd = request.getParameter("pswd");

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        //doGet(request,response);
        //Map<String,String[]> ps = request.getParameterMap();
        request.setCharacterEncoding("utf-8");    
        response.setContentType("text/html;charset=utf-8");
        //獲取客戶端POST參數的值
        String user = request.getParameter("user");
        String pswd = request.getParameter("pswd");
        response.setStatus(200);
        PrintWriter pw=response.getWriter(); //輸出響應信息到客戶端
        pw.write("<html><body><p>登錄成功!\n你輸入的用戶名為:"+user+"\n你輸入的密碼為:"+pswd+"</p></body></html>");
        pw.close();
    }
servlet方法二

 

3、訪問地址:
POST訪問地址為:http://localhost:9008/order-web/himily.jsp

Get方式訪問地址:http://localhost:9008/order-web/HimilyServlet?user=aaa&pswd=bbbb

直接訪問Servlet的地址:http://localhost:9008/order-web/HimilyServlet


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM