实现使用HttpServlet完成一个假登录
第一步:首先在index.jsp中创建登录注册页面
第二步:在web中创建login.jsp登陆和zhuce.jsp注册表单
(post 是获取内容的方式或类型 action 是获取的表单名)
第三步:在 web.xml 中配置servlet的映射关系,统当浏览器请求 login 这个地址的时候,要执行login这个servlet ,login这个servlet 就是 com.chen.servlet包里面的Login这个类(注册也是一样)
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!-- 配置servlet类 -->
<servlet>
<!-- 起别名 -->
<servlet-name>login</servlet-name>
<!-- servlet类所在的位置:类的全类名就是 包名.类名 -->
<servlet-class>com.shi.servlet.Login</servlet-class>
</servlet>
<!-- Servlet类的映射:Servlet用来处理哪个请求 -->
<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Zhuce</servlet-name>
<servlet-class>com.shi.servlet.Zhuce</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Zhuce</servlet-name>
<url-pattern>/Zhuce</url-pattern>
</servlet-mapping>
</web-app>
第四步:在src中创建com.shi.servlet包,在包里创建Login和Zhuce Java Class
Login和Zhuce继承HttpServlet分别执行doGet和doPost
public class Login extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("login-get...");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("login-post....");
}
}
前端请求(request),后端处理后,最后给前端做响应(response)
在doPost中写想要实现的功能
1:获取请求的相关地址
//这三个都是获取请求的相关地址
String uri = req.getRequestURI();
String contextPath = req.getContextPath();
String servletPath = req.getServletPath();
System.out.println(uri);//包含目录名和资源路径
System.out.println(contextPath);//项目名称
System.out.println(servletPath);//请求的资源路径
2:从请求中获取用户提交的参数(数据)
req.setCharacterEncoding("utf-8");//设置请求的编码格式为中文
String user = req.getParameter("user"); //根据表单的name属性获取用户输入值
System.out.println(user);
String pwd = req.getParameter("pwd");
System.out.println(pwd);
3:判断成功要干什么? 判断失败要干什么------做出响应
resp.setCharacterEncoding("utf-8");//设置响应代码的格式
resp.setContentType("text/html;charset=UTF-8"); //以什么样的格式(文本/网页)响应
if (user.equals("张三") && pwd.equals("666")) {
//登陆成功
resp.getWriter().write("登陆成功!");
} else {
//登陆失败
resp.getWriter().write("登陆失败!");
}