建网站最少需要多少钱,wordpress 教材主题,seo如何快速排名,做网站属于什么备案4、Servlet模型#xff08;一#xff09;
Servlet的编写、访问过程
Servlet简介
Servlet是Java Servlet的简称#xff0c;是小服务程序或服务连接器#xff0c;是用Java编写的服务器端程序#xff0c;主要功能在于获取请求#xff0c;返回响应广义#xff1a;一个Ser…4、Servlet模型一
Servlet的编写、访问过程
Servlet简介
Servlet是Java Servlet的简称是小服务程序或服务连接器是用Java编写的服务器端程序主要功能在于获取请求返回响应广义一个Servlet是一个Java语言编写的类提供请求响应式的编程模型狭义Servlet是指Java语言实现的一个接口 编写部署Servlet程序
编写源文件
编写类实现implements
javax.servlet.Servlet 接口在类中实现
javax.servlet.Servlet 接口中的方法
编写类文件
通过Javac命令编译写好的源文件注意-cp参数的使用
部署程序
将编译生成字节码(.class)文件复制到“号站点号/WEB-INF/classes/目录需要注意目录结构配置web.xml中的servlet、servlet-mapping节点 编写部署Servlet 程序步骤
1、编写Servlet程序实现Servlet接口 2、编译Servlet源文件生成字节码文件 注意
DOS窗口中进入Servlet文件所在目录-cp参数导入需要的jar包
javac -cp .;lib\*Hello.java
3、部署
在Tomcat的webapps目录下创建项目目录
在项目目录下创建WEB-INF目录
在WEB-INF目录下放置web.xml配置文件、classes目录和lib目录
classes目录中是步骤2中生成的字节码文件lib目录中是用到的jar包 4、运行
启动Tomcat访问Servlet Servlet处理请求返回响应
http://localhost:8080/MyWebsite/hello
WEB-INF目录下web.xml
servlet servlet-namehelloWorld/servlet-name servlet-classxx.xx.HelloServlet/servlet-class
/servlet
servlet-mapping servlet-namehelloWorld/servlet-name url-pattern/hello/url-pattern
/servlet-mapping Servlet中的请求与响应
接收请求
Tomcat启动后Web容器首先做的工作 接收到请求后服务器转交请求给Web容器Web容器产生请求对象和响应对象 调用Servlet的service()方法并将请求和响应对象作为参数传入该方法service方法根据请求方式调用doXXX()方法 返回响应
在doXXX()方法中使用请求对象获取请求信息响应对象返回响应结果PrintWriter对象销毁请求、响应对象 接收请求
HttpServletRequest接口以参数的形式传递到service方法里HttpServlet的service方法 受保护的service()方法根据请求类型调用doXXX()方法所以一般要重写doXXX()方法 解析请求
getParameter()方法
hrefRegistServlet?userNamezs”表单中的name属性值的获取 request.getHeaderNames();request.getHeader(“host”);//服务器主机request.getRemoteHost();//客户端IPrequest.setCharacterEncoding(UTF-8);
Enumeration e request.getHeaderNames();
while(e.hasMoreElements()) { System.out.println(e.nextElement());
} Attribute参数
setAttribute() 设置参数getAttribute() 获取某个参数的值 HttpServletResponse接口
protected void doGet(HttpServletRequest request, HttpServletResponse response)
getWriter()方法返回的是一个输出流response.setContentType(text/html);
编码
response.setCharacterEncoding(UTF-8);response.setContentType (text/html;charsetUTF-8);
示例 Servlet中请求数据的传递、请求转发与请求重定向 Servlet应用执行过程--请求转发 Servlet应用执行过程--重定向 请求重定向、请求转发
请求转发
request.getRequestDispatcher( targetURL).forward(request, response);
请求重定向
response.sendRedirect(targetURL) 请求数据的传递
请求数据的传递
request.setAttribute(String,Object)request.getAttribute(String),返回Object
注意
请求转发可以共享参数
request.getParameter()request.getAttribute()
请求重定向无法共享参数 请求重定向、请求转发区别
本质
请求转发一次请求请求重定向两次请求
速度
请求转发 请求重定向
Attribute参数
请求转发可共享参数请求重定向不可共享参数
地址栏
请求转发不变请求重定向变