文章目录
一、Servlet基本结构
1、Servlet的定义
Servlet是一个Java程序,是在服务器上运行以处理客户端请求并做出响应的程序。Servlet类继承HttpServlet基类,用于处理HTTP协议请求。
2、 request、response参数的功能和意义
HttpServletRequest request:通过request请求对象可以获取客户端发来的请求信息。
HttpServletResponse response:通过response响应对象可以输出响应信息返回给客户端。
3、Servlet发回HTTP应答:
PrintWriter out=response.getWriter();
out.println(" ");
4、Servlet与URL地址联系起来:
使用注解:@WebServlet("/ticket");
二、Servlet数据交互
1、获取HTTP客户端数据:
获取客户端提交的用户数据
获取HTTP请求的头部信息
2、产生HTTP响应:
产生HTTP响应头部信息
产生HTTP响应报文主体
3、获取客户端提交的数据
客户端提交数据的形式:key-value
获取数据的方法:
(1)获取客户端提交的单个值:
通过HttpServletRequset定义的方法String getParameter(String name),可以根据客户端提交的参数名来获取参数值。
如果某个参数没有值,则返回空串“”;
如果不存在某个参数,则返回null。
(2)获取客户端多个数据:
通过HttpServletRequest定义的方法getParameterValues(String name),可以根据客户端提交的参数名来获取多个参数值。
此方法一次取得全部的值并封装在一个String数组中,如参数不存在,则返回null。
注:提交数据控件的name必须相同。
4、客户端提交数据的方式
(1)客户端通过表单提交信息
(2)把客户端提交的信息包含在超链接中
5、服务器返回HTTP应答
HTTP响应行
6、处理中文字符问题
出现中文乱码的原因:字符编码的不统一
三、Servlet的生命周期
1、Servlet的生命周期由Servlet容器控制
四、Servlet的页面跳转
1、页面跳转:
指后台程序根据业务逻辑,自动从当前页面跳转到指定页面。
2、页面跳转的方式:
(1)重定向:后台通知客户端浏览器重新访问新的URL地址。
特点;发送了两次请求,响应了两次,不能和request域配合使用。
路径:重定向动作在浏览器端执行,所以路径需携带项目名称。
(2)请求转发:后台获取跳转页面的资源,生成HTML文档,发送到客户端。
特点:发送了一次请求,响应一次,和request域对象配合使用,可实现值的传递。
路径;转发动作在服务器内部实现,所以转发时不要带项目名称。
注:URI如果不是以“/”开头,表示的是相对于当前组件的路径,如果以“/”开头,表示的是相对于当前Web应用的根路径。