JavaWeb-入门与Servlet

一个普通的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”)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值