一个普通的JavaWeb项目
- 新建Maven
-
在pom.xml中添加依赖
-
配置服务器
知识补充
Servlet
Servlet简介
本质上是接口,现在大多指它的实现类,创建动态网页所需要的类,完成处理请求和发送响应的过程。
先从B/S结构开始讲起,B/S结构,即Browser/Server,浏览器/服务器,用户从浏览器开始向服务器发送请求request,经过一系列的路径,最后用户得到一个响应response,在当前学习JavaWeb中用的服务器是Tomcat,流程图如下图所示:
用户发送请求,到Web容器(Tomcat),Tomcat将请求封装成HttpServletRequest传递给Servlet,Servlet处理请求并发送响应,响应给用户,当然,在Web容器中可能有很多复杂的路径要走,但是大体简略路径就是这样。
深入理解,参考以下网址
https://www.cnblogs.com/whgk/p/6399262.html
新建一个Servlet
1.最通常的情况下,需要重写doGet和doPost方法,因为Servlet是处理请求和发送响应的执行者。
2.声明该Servlet:
方法一:
在Web配置文件中声明该Servlet。
<servlet>
<!--servlet的名字-->
<servlet-name>servlet02</servlet-name>
<!--servlet类的位置-->
<servlet-class>com.bin.Servlet.Test01.Servlet02</servlet-class>
</servlet>
<!--servlet映射-->
<servlet-mapping>
<servlet-name>servlet02</servlet-name>
<!--资源位置-->
<url-pattern>/s2</url-pattern>
</servlet-mapping>
方法二:
采用注解@WebServlet
注解中的常用属性:
最基本的需要配置单的属性是,name、urlPatterns
ServletText
了解即可,详见
https://www.bilibili.com/video/BV12J411M7Sj?t=4&p=12
p10、p11
1.获取路径
2.获取文件名
3.让浏览器支持下载
4.读写文件
HttpServletRequest
该接口主要实现两个功能:
1.获取客户端提交的表单
String username = request.getParameter(String name);
2.请求转发
请求转发,相当于告诉服务器将请求转发至哪个Servlet,交给另一个Servlet处理
//方式一
req.getRequestDispatcher("/servlet02").forward(req, resp);
//方式二
RequestDispatcher dispatcher = this.getServletContext().
getRequestDispatcher("/servlet02").forward(req, resp);
HttpServletResponse
掌握接口的方法:
重定向:sendRedirect();
重定向与转发的区别:
乱码问题
分类
request乱码:浏览器向服务器发送的请求参数包含中文字符,服务器获取到的请求参数是乱码。
response乱码:服务器向浏览器发送的数据包含中文字符,浏览器获取到的响应数据是乱码。
本质:服务器与浏览器编码格式不统一。
解决方案
request乱码:
表单提交:
1.get方式:修改tomcat中的server.xml文件中<Connector…>元素的属性URLEncoding="UTF-8"即可
2.post方式:post方式属于表单提交,参数存在于请求体中,通过request.setCharacterEncoding(“utf-8”)即可解决。
response乱码:
服务器发给浏览器的默认编码方式是ISO-8859-1,若浏览器的解码方式不是ISO-8859-1,则可能会出现乱码。
response.setContentType(“text/html;charset=utf-8”)