servlet

servlet

servlet本质上是:

​ 用来处理客户端浏览器发出的动态请求的一个程序。

实现servlet程序:

​ 1、编写一个servlet类去继承HttpServlet。(HttpServlet在开发中最为常用)

​ 2、实现service方法,用来处理请求,响应数据。

​ 3、在web.xml内,配置servlet访问地址。

<servlet>
        <servlet-name>RegisterServlet</servlet-name>
        <servlet-class>com.right.web.RegisterServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>RegisterServlet</servlet-name>
        <url-pattern>/RegisterServlet</url-pattern>
    </servlet-mapping>

servlet的生命周期

1、执行servlet构造器方法(只执行一次,访问时创建servlet程序调用)

2、执行init初始化方法(只执行一次,访问时创建servlet程序调用)

3、执行service方法(调用一次执行一次,可以多次调用)

4、执行destroy方法(只执行一次,web工程停止时调用)

get和post请求分发处理

根据提交表单的get或post方式分别进行处理。

get提交方式进servlet程序的doget方法

post提交方式进servlet程序的dopost方法

ServletConfig类

每一个servlet程序都有一个单独的ServletConfig对象,该对象内有很多方法。

常用于获取servlet程序在xml中的配置信息。

ServletContext类

ServletContext对象是一个域对象,在整个域内所有servlet程序共用一个ServletContext对象。

ServletContext对象常用方法:

setAttribute()

​ 存数据

getAttribute()

​ 读数据

removeAttribute()

​ 删数据

ServletContext对象的这几个方法和map集合类似,以键值对的方式进行存储。

getContextPath()

​ 获取当前的工作路径

getRealPath()

​ 获取在服务器硬盘上的绝对路径

HttpServletRequest类

我们可以通过HttpServletRequest类对象获取客户端发送的所有请求信息。(在doGet方法和doPost中使用该对象)

常用方法:

getRequestURI()

​ 获取请求的资源路径

getRequestURL()

​ 获取请求的统一资源定位符(绝对路径)

getRemoteHost()

​ 获取客户端的 ip 地址

getHeader()

​ 获取请求头

getParmater()

​ 获取请求的参数

getParmaterValues()

​ 获取请求的参数(多个值的时候使用)

getMethod()

​ 获取请求的方式 GET 或 POST

setAttribute(key,value)

​ 设置域数据

getAttribute(key)

​ 获取域数据

getRequestDispatcher()

​ 获取请求转发对象

如果获取到客户端参数为乱码,可以设置

req.setCharacterEncoding("UTF-8");

HttpServletRequest类

对客户端浏览器发出的请求进行响应。

PrintWriter writer = resp.getWriter();

创建一个writer对象,并设置内容回传给客户端。

如果出现回传乱码可以进行设置:

resp.setContentType("text/html; charset=UTF-8");//设置响应文本类型

base标签

base标签放在html文件中的head标签内最上面

base标签可以设置当前页面中所有相对路径工作时,参照那个路径进行跳转。

base路径,和当前页面内引用文件的路径,合起来就是文件的绝对路径。(base+相对=绝对

请求转发

服务器收到请求后,从一次资源跳转到另一个资源的操作叫请求转发。服务器内部跳转,外部请求的地址不发生改变。可以转发到WEB-INF目录下。不可以转发到工程外。

可以共享Request域中数据。

req.getRequestDispatcher("/Servlet2").forward(req,resp);//请求转发到Servlet2程序

重定向

由于各种原因,我们之前的网页已可能经废弃,当用户还想通过这个网页地址进行访问时,我们需要给用户重定向到一个新地址。可以转发到WEB-INF目录下。不可以重定向到工程外。

不能共享Request域中数据。

用户请求的地址在完成重定向后会改变为新地址。

resp.sendRedirect("http://localhost:8080");//重定向到该地址
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值