我是靠谱客的博主 任性服饰,这篇文章主要介绍黑猴子的家:JavaWeb 之 Servlet 实操案例二,现在分享给大家,希望可以做个参考。

Form通过web_servlet02,学习get 和post 提交流程,编码等等

1、code

1)web.xml
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?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>web_servlet02</display-name> <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>com.alex.web.servlet.LoginServlet</servlet-class> <!-- load-on-startup 值大于等于0的整数值,表示服务器启动时创建Servlet,值越小优先级越高 --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/LoginServlet</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
2)login.jsp
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<%@ 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>Insert title here</title> </head> <body> Get <form action="LoginServlet" method="get"> 用户名:<input type="text" name="username" /> <br/> 密码:<input type="text" name="passwd" /> <br/> <!-- 访问AutoByEclipseServlet中的doGet方法 --> <input type="submit" value="发送GET请求" /> </form> <br /> <br /> POST <form action="LoginServlet" method="post"> 用户名<input type="text" name="username" /> <br/> 密码:<input type="text" name="passwd" /> <br/> <!-- 访问AutoByEclipseServlet中的doPost方法 --> <input type="submit" value="发送POST请求" /> </form> </body> </html>
3)LoginServlet
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package com.alex.web.servlet; import java.io.IOException; import java.util.Map; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServlet; //Servlet 对象时单例的,伪单例 //public class LoginServlet implements Servlet{ public class LoginServlet extends HttpServlet{ //声明周期方法 //生命周期:表示对象从创建、初始化、使用、销毁过程 //创建对象 public LoginServlet(){ System.out.println("LoginServlet....."); } //销毁对象时使用 @Override public void destroy() { System.out.println("destroy ......"); } //初始化对象 //初始化方法只执行一次 @Override public void init(ServletConfig servletconfig) throws ServletException { System.out.println("init ... ..."); } //处理请求使用的 @Override public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { //设置请求字符编码,解决客户端提交数据是中文乱码问题 //设置必须在request.getParameter(" ") 方法前调用,否则不起作用 //只针对post请求方式有效,对get请求方式无效 //如果解决Get请求乱码问题,需要在Tomcat/conf/server.xml中设置字符编码 //<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> request.setCharacterEncoding("UTF-8"); //如何获取客户端浏览器的数据? //一个参数名称带一个值,例如:文本框、密码框 String username = request.getParameter("username"); String passwd = request.getParameter("passwd"); //一个参数名称带多个值,例如:复选框 //String[] values = request.getParameterValues(""); //一次性获取所有请求参数,key为参数名称,值为参数名称对应的值 //Map<String, String[]> parameterMap = request.getParameterMap(); System.out.println("username:" + username); System.out.println("passwd:" + passwd); //服务器端告诉客户端浏览器,返回的是text/html类型的数据 //设置响应内容类型及编码,需要在response.getWriter().println("")方法调用前设置,否则不起作用 response.setContentType("text/html;charset=UTF-8"); if("admin".equals(username) && "123".equals(passwd)){ response.getWriter().println("登录成功..."); }else{ response.getWriter().println("登录失败,用户名或者密码不正确"); } } }

2、编码问题

1)从页面获取值的时候post 提交方式
复制代码
1
2
request.setCharacterEncoding("UTF-8");
2)从页面获取值的时候get 提交方式
复制代码
1
2
3
4
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>
3)Servlet 返回到页面
复制代码
1
2
response.setContentType("text/html;charset=UTF-8");
4)jsp页面设置utf-8 编码
复制代码
1
2
3
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

最后

以上就是任性服饰最近收集整理的关于黑猴子的家:JavaWeb 之 Servlet 实操案例二的全部内容,更多相关黑猴子的家:JavaWeb内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部