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 密 码:<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 密 码:<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>改成的名字,就可以调用这个类。