javaweb实训第三天上午——Servlet(2)

简介: 1.7.处理请求的方式

javaweb实训第三天上午——Servlet(1)https://developer.aliyun.com/article/1414833

1.7.处理请求的方式

20210524113202658.png前言:之前学过请求方式或方法有很多,主要掌握:get和post两种,下面的这种写法太麻烦:


为了提高开发效率,一般采用下面的几种方式处理不同的请求方式:

第一种:在doGet中调用doPost


20210524113212614.png

第二种:在doPost中调用doGet

20210524113223329.png

第三种:service方法(底层会判断是get还是post调用相应的方法处理)

20210524113237571.png

1.8.HttpServletRequest对象

1.HttpServletRequest对象是Servlet的请求对象,可以获取请求数据包/报文中的所有信息;

2.常用方法:

(1)String getContextPath():获取上下文路径,<Context path="上下文" ../>;
(2)String getHeader(String headName):根据指定的请求头获取对应的请求头的值;
(3)String getRequestURI():返回当期请求的资源路径URI(上下文路径/资源名);
(4)StringBuffer getRequestURL():返回浏览器请求地址URL;
(5)String getRemoteAddr():返回请求服务器的客户端的IP;
(6)String getServletPath():返回请求,<url-pattern>中的值;
(7)==String getParameter(String name):==根据参数名称,获取对应参数的值;
(8)String[] getParameterValues(String name):根据参数名称,获取该参数的多个值;
(9)Map<String,String[]> getParameterMap():返回请求参数组成的Map集合;
(10)void req.setCharacterEncoding("UTF-8"):能够正确获取post请求的中文参数而不出现乱码;
(11)String getProtocol()):获取协议版本HTTP/1.1
(12)String getMethod()):获取请求方式(GET or POST)
(13)int getServerPort():获取端口号

1.9.HttpServletResponse对象

1.HttpServletResponse对象是Servlet的响应对象,可以设置响应的文件格式和编码格式,还可以获取输出流;

2.常用方法:

(1)获取流:

①方法1:OutputStream getOutputStream(); 获取字节输出流(上传下载用)

②方法2:resp.getWriter(); 获取字符输出流

(2)响应页面的文件格式和编码格式:resp.setContextType(“text/html;charset=UTF-8”);

1.10.乱码问题

1.向页面输出中文

(1)resp.setContentType(“text/html;charset=utf-8”);//能够向页面输出中文

(2)注意:""中的内容不要写错,否则浏览器不认识响应的类型,就会将问题抛给用户;

2.获取表单提交的中文数据

(1)针对post请求(请求参数是在实体内容中)

①第一种:req.setCharacterEncoding(“utf-8”);

②第二种:转码:name = new String(name.getBytes(“iso-8859-1”), “utf-8”);//转码缺点:太麻烦,每个数据都要转

③注意:两种只能用其一;

3.针对get请求(请求参数是在地址栏上),tomcat8不做处理,如果是tomcat7及其以前:

(1)第一种:转码:name = new String(name.getBytes(“iso-8859-1”), “utf-8”);

(2)第二种:修改服务器中的配置conf – server.xml – 标签中最后加上属性URIEncoding=“utf-8”

(3)注意:两种只能用其一 ,以后服务器换了,还需重新配置一次;

4.注意:

(1)tomcat8.x之前的默认编码集为ISO-8859-1,tomcat8.x之后默认编码集为UTF-8;

(2)对于tomcat8.x以及之后的get请求不需要转码或配置,而Tomcat7需要配置;

2.课程总结

2.1.重点

1.get和post区别;

2.Sevlet开发;

3.Servlet生命周期;

2.2.难点

1.Web项目搭建和部署;

2.Servlet开发;

3.乱码问题;

4.Servlet生命周期理解;

2.3.如何掌握

1.课上认真听课;

2.完成课后练习;

3.抓住课程重点;

2.4.排错技巧

1.通过异常和错误找出问题,分析问题,解决问题;

2.如果tomcat点了没有反应,可能是在eclipse 里面配置有问题;

3.如果已经启动了tomcat,再次启动会报错端口号被占用;

4.不熟悉Servlet开发流程;

3.常见问题

1.错误信息:A child container failed during start

(1)原因1:请求的写法不规范

(2)原因2:请求重复了,Servlet的请求不能重复

2.错误信息:ClassNotFoundException - 我们自己写的类找不到

(1)原因1:类的完全限定名写错

(2)原因2:eclipse自动编译出问题,切换到navigator视图发现classes中没有字节码文件 – 解决,重启eclipse,有可能eclipse在执行其他任务时卡住了

3.Tomcat启动时进入Debug模式

(1)如果Javaweb项目运行时,设置了断点【有时候并不是自己设置的,tomcat自动设置的】,那么启动时就会停止 – 解决,清除所有的断点,然后重新启动tomcat

4.Tomcat启动时报错

(1)包含第一个错误

(2)找配置【web.xml or server.xml】找注解@WebServlet

4.课后练习

1.课堂代码1-2遍;

2.完成一个页面输入账号和密码,后台连接数据库查询是否有该用户

如果有返回登陆成功

如果没有返回 亲,账号和密码错误

5.扩展知识或课外阅读推荐(可选)

5.1.扩展知识

@WebServlet注解

@WebServlet(name="", urlPatterns={""}, loadOnStartup=1,initParams={@WebInitParam(name="",value="")})

public class FirstServlet extends HttpServlet{ … }

注:如果添加了web.xml,需要设置metadata-complete=”false”或者说不写这个属性,那么上述注解才有用:

20210524113435516.png


目录
相关文章
|
3月前
|
Java 应用服务中间件 Maven
JavaWeb基础5——HTTP,Tomcat&Servlet
JavaWeb技术栈、HTTP、get和post区别、响应状态码、请求响应格数据式、IDEA使用Tomcat、报错解决、Servlet的体系结构、IDEA使用模板创建Servlet
JavaWeb基础5——HTTP,Tomcat&Servlet
|
6月前
|
SQL druid Java
javaweb案例实训之基于jsp和servlet的用户管理开发[增删改查及登录注销]
javaweb案例实训之基于jsp和servlet的用户管理开发[增删改查及登录注销]
46 0
|
6月前
|
SQL 数据可视化 数据库
基于jsp+servlet的javaweb实现最基本的用户注册登陆注销功能
基于jsp+servlet的javaweb实现最基本的用户注册登陆注销功能
29 0
|
7月前
|
存储 安全 JavaScript
JavaWeb之Servlet(下)
本文主要介绍了JavaWeb开发中关于请求、响应、会话和Servlet3.0注解的相关知识。首先讲解了请求(Request)的常用方法,以及处理请求乱码问题的几种方式。接着讨论了响应(Response)的方法,,以及设置全局初始化参数。然后介绍了会话(Session)的概念,包括其生命周期、如何设置和获取初始化参数,并对比了全局初始化参数和Servlet3.0的`@WebServlet`注解。文中给出了具体的代码示例和测试结果,帮助读者更好地理解和掌握这些概念。
|
7月前
|
Java 应用服务中间件 程序员
JavaWeb之Servlet(上)
本篇博文介绍了JavaWeb中Servlet的基本概念和应用。Servlet是用于交互式浏览和修改数据、生成动态Web内容的Java程序,通常运行在支持Java的应用服务器上。文章讲解了Servlet的工作模式,包括客户端请求、服务器调用Servlet以及响应返回客户端的过程。此外,还提到了Servlet API,特别是doGet和doPost方法用于处理请求和响应。作者通过创建第一个Servlet的步骤,展示了如何实现Servlet接口并配置web.xml文件。最后,文章简述了Servlet的工作原理和生命周期,强调了Servlet的单例特性以及初始化、服务和销毁的过程。
|
7月前
|
存储 前端开发 Java
JavaWeb:servlet+jsp+mybatis商品管理增删改查
商品管理通常包括增加(添加)、删除、修改和查询商品信息
185 1
JavaWeb:servlet+jsp+mybatis商品管理增删改查
|
7月前
|
安全 Java
javaweb实训第四天下午——员工管理系统-JSP&Servlet&JDBC综合练习-CRUD
1.课程介绍 Servlet细节; (掌握) 员工信息相关的CRUD; (掌握) 部门信息相关的CRUD; (掌握) 2.Servlet细节 2.1.多种匹配方式
106 0
|
4月前
|
缓存 安全 Java
Java服务器端技术:Servlet与JSP的集成与扩展
Java服务器端技术:Servlet与JSP的集成与扩展
42 3
|
4月前
|
存储 缓存 前端开发
Servlet与JSP在Java Web应用中的性能调优策略
Servlet与JSP在Java Web应用中的性能调优策略
43 1
|
4月前
|
存储 Java 关系型数据库
基于Servlet和JSP的Java Web应用开发指南
基于Servlet和JSP的Java Web应用开发指南
82 0