JavaEE 学习中,Web-Servlet 简单登录页面(入口、处理、出口)(java 学习中的小记录)

JavaEE 学习中,Web-Servlet 简单登录页面(入口、处理、出口)(java 学习中的小记录)作者:王可利(Star·星星)

Web-Servlet 简单登录页面

这一章主要是熟悉,入口页面的登录效果,然后通过servlet来处理,最后把值传递给出口页面的过程。

附上代码(入口页面):

 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 2 <html>
 3   <head>
 4     <title>login.html</title>
 5     
 6     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 7     <meta http-equiv="description" content="this is my page">
 8     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 9     
10     <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
11 
12   </head>
13   
14   <body>
15   <form action="loginUrl"  method="post">
16   
17     用户名:<input type="text" name=username value=""/><br/>
18   
19   密&nbsp;&nbsp;&nbsp;码:<input type="text" name=pwd value=""/><br/>
20   <input type="submit" value="登录" > 
21   
22  <!-- 按钮button   按钮+提交 submit-->
23  
24   
25   </form>
26 
27   <a href="loginUrl?username=star&pwd=123456">跳转到LoginServlet的doGet方法</a>
28   
29  </body>
30 </html>
入口代码

附上代码(处理过程界面是jsp格式):

 1 package com.bw.test;
 2 
 3 import java.io.IOException;
 4 
 5 import javax.servlet.ServletException;
 6 import javax.servlet.http.HttpServlet;
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9 
10 public class LoginServlet extends HttpServlet {
11     @Override
12     protected void doGet(HttpServletRequest req, HttpServletResponse resp)
13             throws ServletException, IOException {
14         
15         
16         //涉及到编译汉字的时候出现乱码
17         req.setCharacterEncoding("utf-8");//控制台出现乱码的时候用        
18         resp.setCharacterEncoding("utf-8");//输出页面出现乱码的时候用
19         
20         
21         System.out.println("进入doGet方法");
22         
23     }
24     
25     @Override
26     protected void doPost(HttpServletRequest req, HttpServletResponse resp)
27             throws ServletException, IOException {
28         
29         System.out.println("进入doPost方法");
30         
31         //涉及到编译汉字的时候出现乱码
32         req.setCharacterEncoding("utf-8");//控制台出现乱码的时候用        
33         resp.setCharacterEncoding("utf-8");//输出页面出现乱码的时候用
34         
35         
36         System.out.println("进入doPost方法");
37         
38         //跳转到出口  跳转传递数据就用这个
39         //req.getRequestDispatcher("success.jsp").forward(req, resp);    
40         //重新定向     跳转不传递数据就用这个
41         //resp.sendRedirect("success.html");
42         
43         //拿到登录输入的帐号密码
44         String userName=req.getParameter("username");
45         String pwd = req.getParameter("pwd");
46         
47         //控制台输出帐号密码
48         System.out.println("账户:"+userName+"密码:"+pwd);
49         
50         //保存数据(用jsp来做出口页面的话就要保存数据)
51         req.setAttribute("name",userName);
52         req.setAttribute("password", pwd);
53         
54         
55         //跳转并且可以传递数据
56         req.getRequestDispatcher("success.jsp").forward(req, resp);
57     }
58 }
处理过程(当出口界面是jsp格式的时候)

附上代码(出口页面界面是jsp格式):

 1 <%@ page pageEncoding="UTF-8"%>
 2 
 3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 4 <html>
 5   <head>
 6     <title>success.html</title>
 7     
 8     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 9     <meta http-equiv="description" content="this is my page">
10     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
11     
12     <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
13 
14   </head>
15   
16   <body>
17     注册的用户名:${ name },密码:${ password }
18   </body>
19 </html>
出口页面 界面是jsp格式

附上代码(web.xml的设置):

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app version="2.5" 
 3     xmlns="http://java.sun.com/xml/ns/javaee" 
 4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 5     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
 6     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 7 
 8   <welcome-file-list>
 9     <welcome-file>index.jsp</welcome-file>
10   </welcome-file-list>
11   
12    <servlet>
13     <servlet-name>LoginServlet</servlet-name>
14     <servlet-class>com.bw.test.LoginServlet</servlet-class>
15   </servlet>
16 
17   <servlet-mapping>
18     <servlet-name>LoginServlet</servlet-name>
19     <url-pattern>/loginUrl</url-pattern>
20   </servlet-mapping>
21   
22 </web-app>
web.xml

自己需要注意的问题:

1.jsp服务器在使用的时候,记得是发布的服务器要和运行的服务器是一致的。

     

2.入口这里,method="post" 意思是当前的数据用post方法传递 在服务器端可用response.post("表单域名")来获得数据 而get方法传递的数据是可以在浏览器的地址栏明文传递的 很容易泄漏信息 并且传递的信息量不是很大(1024字节 IE) 而post方法可以传递更大信息量的数据,处理里面 走doGet方法用method="get",走doPost方法用method="post",

3.jsp文件处理的方法要放在doPost方法里面执行,doGet方法里面不可以。

4.jsp文件对于传进来的数据要先保存,然后再跳转数据 。

5.处理里面防止出现乱码,汉字编译不到要在前面先编译成utf-8的。

6.在输出界面要有<%@ page pageEncoding="UTF-8"%>不然会乱码。

附上代码(入口页面):

 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 2 <html>
 3   <head>
 4     <title>login.html</title>
 5     
 6     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 7     <meta http-equiv="description" content="this is my page">
 8     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 9     
10     <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
11 
12   </head>
13   
14   <body>
15   <form action="loginUrl"  method="get">
16   
17     用户名:<input type="text" name=username value=""/><br/>
18   
19   密&nbsp;&nbsp;&nbsp;码:<input type="text" name=pwd value=""/><br/>
20   <input type="submit" value="登录" > 
21   
22  <!-- 按钮button   按钮+提交 submit-->
23   </form>
24 
25   <a href="loginUrl?username=star&pwd=123456">跳转到LoginServlet的doGet方法</a>
26   
27  </body>
28 </html>
入口界面

附上代码(处理过程界面是html格式)

 1 package com.bw.test;
 2 
 3 import java.io.IOException;
 4 
 5 import javax.servlet.ServletException;
 6 import javax.servlet.http.HttpServlet;
 7 import javax.servlet.http.HttpServletRequest;
 8 import javax.servlet.http.HttpServletResponse;
 9 
10 public class LoginServlet extends HttpServlet {
11     @Override
12     protected void doGet(HttpServletRequest req, HttpServletResponse resp)
13             throws ServletException, IOException {
14         
15         
16         //涉及到编译汉字的时候出现乱码
17         req.setCharacterEncoding("utf-8");//控制台出现乱码的时候用
18         
19         resp.setCharacterEncoding("utf-8");//输出页面出现乱码的时候
20         
21         
22         System.out.println("进入doGet方法");
23         
24         //跳转到出口  跳转传递数据就用这个
25          req.getRequestDispatcher("success.html").forward(req, resp);    
26         //重新定向     跳转不传递数据就用这个
27         //resp.sendRedirect("success.html");
28         
29         //拿到登录输入的帐号密码
30         String userName=req.getParameter("username");
31         String pwd = req.getParameter("pwd");
32         
33         //控制台输出帐号密码
34         System.out.println("账户:"+userName+"密码:"+pwd);
35 
36     }
37     
38     @Override
39     protected void doPost(HttpServletRequest req, HttpServletResponse resp)
40             throws ServletException, IOException {
41         
42         System.out.println("进入doPost方法");
43     }
44 }
处理过程(当出口界面是html格式的时候)

附上代码(出口页面界面是html格式):

 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 2 <html>
 3   <head>
 4     <title>success.html</title>
 5     
 6     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 7     <meta http-equiv="description" content="this is my page">
 8     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 9     
10     <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
11 
12   </head>
13   
14   <body>
15            成功了........<br/>
16   </body>
17 </html>
出口界面

附上代码(web.xml):

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app version="2.5" 
 3     xmlns="http://java.sun.com/xml/ns/javaee" 
 4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 5     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
 6     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 7 
 8   <welcome-file-list>
 9     <welcome-file>index.jsp</welcome-file>
10   </welcome-file-list>
11   
12    <servlet>
13     <servlet-name>LoginServlet</servlet-name>
14     <servlet-class>com.bw.test.LoginServlet</servlet-class>
15   </servlet>
16 
17   <servlet-mapping>
18     <servlet-name>LoginServlet</servlet-name>
19     <url-pattern>/loginUrl</url-pattern>
20   </servlet-mapping>
21   
22 </web-app>
web.xml

自己需要注意的问题:

web.xml 文件里面 红色中间的的部位要写在<web-app>的里面。

<servlet>里面的<servlet-name>是为<servlet-class>这个类取一个名字方便下面来给这个类赋一个新的名字

<servlet-mapping>里面的<servlet-name>要和前面的类的是一致的才行,<url-pattern>写类要改成的名字

然后输入网址的时候末尾就不是写类名了,就直接写<url-pattern>改成的名字,就可以调用这个类。

原文地址:https://www.cnblogs.com/StarKL/p/6204118.html