XML配置方式编写Servlet
3.0版本之前,仅仅支持XML配置文件的配置方式
1、编写Servlet类
2、在web.xml中配置该Servlet
Request和Response
Request------>获取请求数据
Response----->设置响应数据
Request继承体系
ServletRequest---->Java提供的请求对象接口
^
|
HttpServletRequest---->Java提供的对Http协议封装的请求对象接口
^
|
RequestFacade---->Tomcat定义的实现类
Request获取请求数据
1、请求行
获取请求方式,获取虚拟目录,获取URL,获取URI,获取请求参数
2、请求头
根据请求头名称,获取值
3、请求体
获取字节输入流,获取字符输入流
参数:利用相应表单获取对应的post请求方式(输入流);而get请求方式通过getQueryString()方法获取
Request对象使用通用方式获取请求参数
请求参数获取方式:
GET方式:String getQueryString();
POST方式:BufferedReading getReader();
1、Map<String,String[]> getParameterMap():获取所有参数Map集合
2、String[] getParameterValues(String name):根据名称获取参数值(数组)
3、String getParameter(String name):根据名称获取参数值(单个值)
GET和Post方法示例:
更高效----使用Servlet模板创建
在Java文件夹中创建一个Servlet类型的.java文件,会自动生成一个相关的Servlet模板
步骤如下:
右键Java文件夹,new--->Servlet---->即可生成模板
目前,我们需要的Servlet模板没有这么复杂,所以可以通过下面的步骤将模板修改为我们所需要的模板样式
步骤如下:
File--->Settings--->Editor--->File and Code Temples
再选择其中的Other
找到下面的web中的Java codetemples--->Servlet Annotated Class.java,就可以进行模板的修改啦!
Request对象请求转发
一种在服务器内部的资源跳转方式
实现方式:
req.getRequestDispatcher("资源B路径").forward(req,resp);
请求转发资源间共享数据,使用Request对象
void setAttribute(String name,Object o);//存储数据到request域中
Object getAttribute(String name);//根据key,获取值
void removeAttribute(String name);//根据key,删除该键值对
请求转发的特点:
1、浏览器地址栏路径不发生变化
2、只能转发到当前服务器的内部资源
3、一次请求,可以在转发的资源间使用request共享数据
Response对象
设置响应数据功能
1、响应行
void setStatus(int sc);//设置响应状态码
2、响应头
void setHeader(String name,String value);//设置响应头键值对
3、响应体
PrintWriter()//实现字符输出流
ServletOutputStream getOutputStream()//获取字节输出流
Response完成重定向(一种资源跳转方式)
实现方式:
resp.setStatus(状态码);
resp.setHeader("location","资源B的路径");
要清楚的是,在设置资源B的路径时,需要加上前面的虚拟目录
特点:
1、浏览器地址栏发生变化
2、可以重定向到任意位置
3、两次请求,不能在多个资源使用request共享数据
Response响应字符数据(设置字符数据的响应体)
利用setHeader()方法识别html标签
如果想要输入中文,可能会出现乱码情况,所以需要进行以下操作:
重要操作!!!!!!!!!!!!
并且,流是不需要关闭的