JSP页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <form action="${pageContext.request.contextPath}/login" method="post"> <span>用户名:</span><input type="text" name="userName"> <span>密码:</span><input type="text" name="userPwd"> <input type="submit" value="提交"> </form> </body> </html>
Web.xml配置
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>JspAndServlet</display-name> <welcome-file-list> <welcome-file>login.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>loginServlet</servlet-name> <servlet-class>com.servlet.LoginServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>loginServlet</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping> </web-app>
1. ServletRequest、ServletResponse
Servlet类实现Servlet接口
- ServletRequest: 封装了请求信息. 可以从中获取到任何的请求信息
- ServletResponse: 封装了响应信息, 如果想给用户什么响应, 具体可以使用该接口的方法实现
package com.servlet; import java.io.IOException; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * 实现Servlet接口 * * @author yyx 2019年9月1日 */ public class LoginServlet implements Servlet { @Override public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { // servletRequest需要强制转换成HttpServletRequest才能获取Http相关信息 HttpServletRequest req = (HttpServletRequest) servletRequest; String userName = req.getParameter("userName"); String userPwd = req.getParameter("userPwd"); System.out.println(userName + " " + userPwd); String requestURI = req.getRequestURI(); System.out.println(requestURI); String method = req.getMethod(); System.out.println(method); String queryString = req.getQueryString(); System.out.println(queryString); String servletPath = req.getServletPath(); System.out.println(servletPath); // 设置响应的内容类型 HttpServletResponse resp = (HttpServletResponse) servletResponse; resp.setCharacterEncoding("UTF-8"); } @Override public void destroy() { } @Override public ServletConfig getServletConfig() { return null; } @Override public String getServletInfo() { return null; } @Override public void init(ServletConfig arg0) throws ServletException { } }
2. HttpServletRequest、HttpServletResponse
Servlet类实现继承HttpServlet
- HttpServletRequest继承自ServletRequest
- HttpServletResponse继承自ServletResponse
package com.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * 继承HttpServlet类 * @author yyx 2019年9月1日 */ public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String userName=req.getParameter("userName"); String userPwd=req.getParameter("userPwd"); System.out.println(userName+" "+userPwd); String requestURI = req.getRequestURI(); System.out.println(requestURI); String method = req.getMethod(); System.out.println(method); String queryString = req.getQueryString(); System.out.println(queryString); String servletPath = req.getServletPath(); System.out.println(servletPath); //设置响应的内容类型 resp.setCharacterEncoding("UTF-8"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }