javaweb总结(七)--Java中前台JSP请求Servlet实例(http+Servlet)

本文来自:https://www.cnblogs.com/trhimily/p/5924319.html

已经创建好的web项目链接:https://pan.baidu.com/s/1SmMJLKsLY1SFTAOtBPJ0jA

 

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>

MyServlet.java代码,这里是接受客户端的请求以及处理后的响应

 方法一:

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

获取客户端的所有请求参数的Key和Value值存入一个Map中,并且Value是数组类型,便于有相同key的时候组成二维数组

 

package com.suning.logistics.order.web;

import java.io.IOException;
import java.io.PrintWriter;
import java.security.Principal;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class MyServlet
 */
public class MyServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public MyServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        try{
        //System.out.println("himily's servlet!");
        //response.getWriter().write("aaaa");
        request.setCharacterEncoding("utf-8");    
        response.setContentType("text/html;charset=utf-8");
        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();
        }catch(Exception e){
            response.getWriter().write(e.toString());
        }
            
        
    }

    /**
     * @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);
        Map<String,String[]> ps = request.getParameterMap();
        request.setCharacterEncoding("utf-8");    
        response.setContentType("text/html;charset=utf-8");
    //    String user = request.getParameter("user");
    //    String pswd = request.getParameter("pswd");
        response.setStatus(200);
        PrintWriter pw=response.getWriter();
        pw.write("<html><body><p>登录成功!\n你输入的用户名为:"+ps.get("user")[0]+"\n你输入的密码为:"+ps.get("pswd")[0]+"</p></body></html>");
        pw.close();
    }

}

方法二:

  //获取客户端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();
    }

 

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值