ppt模板下载素材网站,北京市网站制作公司,供求信息网站建设报价,精品网站要建设需要多少钱1.Servlet编程基础
(1)什么是Servlet
Servlet是基于Java语言的Web编程技术#xff0c;部署在服务器端的Web容器里#xff0c;获取客户端的访问请求#xff0c;并根据请求生成响应信息返回给客户端。 创建Servlet的方式#xff0c;有
如下图#xff1a;一般创建Servlet都…1.Servlet编程基础
(1)什么是Servlet
Servlet是基于Java语言的Web编程技术部署在服务器端的Web容器里获取客户端的访问请求并根据请求生成响应信息返回给客户端。 创建Servlet的方式有
如下图一般创建Servlet都是通过继承HttpServlet来实现如图中的HelloServlet。
类图快捷键Ctrl Alt U 1.创建一个基于Maven的web项目。 2.创建java和resources文件夹 3.修改web.xml的版本 4.导入servlet的依赖
!--servlet的依赖--
dependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion4.0.1/version
/dependency (2)Servlet的生命周期
init():当服务器启动第一次访问Servlet的时候servlet进行初始化
service():在服务器启动期间可以不断的处理请求。 destroy():在服务器停止的时候去销毁Servlet.
(3)Servlet的主要功能
1读取客户端发送到服务器端的显式数据表单数据
2读取客户端发送到服务器端的隐式数据请求报头
3服务器端发送显式数据到客户端HTML
4服务器端发送隐式数据到客户端状态代码和响应报头 2.编写Servlet类
1.通过Servlet生成静态网页
package com.ambow.test;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;/*** 作用通过Servlet动态生成HTML网页* author foxbill* date 2021/11/2 10:58*/
WebServlet(name FirstServlet)
public class FirstServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setCharacterEncoding(UTF-8);//设置响应的字符集格式为UTF-8response.setContentType(text/html);//设置响应正文的MIME类型PrintWriter out response.getWriter();//返回一个PrintWriter对象Servlet使用它来输出字符串形式的正文数据out.println(!doctype html);out.println(html);out.println(headtitle动态生成的HTML文档/title/head);out.println(body);out.println(table border0 aligncenter);out.println(trtd bgcolorskyblue colspan2动态生成HTML文档/td/tr);out.println(/table);out.println(/body);out.println(/html);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request,response);}
}
web.xml的相关代码
servletservlet-nameFirstServlet/servlet-nameservlet-classcom.ambow.test.FirstServlet/servlet-class
/servlet
servlet-mappingservlet-nameFirstServlet/servlet-nameurl-pattern/first/url-pattern
/servlet-mapping 2.通过Servlet生成动态网页
package com.ambow.test;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.time.LocalTime;/*** author foxbill* date 2023/8/9 16:35*/
WebServlet(name TestServlet)
public class TestServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//请求处理代码功能写一个动态网页response.setCharacterEncoding(UTF-8);response.setContentType(text/html);PrintWriter out response.getWriter();LocalTime now LocalTime.now();int hour now.getHour();out.println(!doctype html);out.println(html);out.println(head);out.println(/head);out.println(body);if (hour0 hour 6){out.println(晚安);}if (hour6 hour 12){out.println(早安);}if (hour12){out.println(午安);}out.println(/body);out.println(/html);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request,response);}
}
web.xml的相关代码
servletservlet-nameTestServlet/servlet-nameservlet-classcom.ambow.test.TestServlet/servlet-class
/servlet
servlet-mappingservlet-nameTestServlet/servlet-nameurl-pattern/test/url-pattern
/servlet-mapping 3.编写web.xml配置文件
一配置虚拟路径
1.Servlet的多重映射
方式一
servletservlet-nameFirstServlet/servlet-nameservlet-classcom.ambow.test.FirstServlet/servlet-class
/servlet
servlet-mappingservlet-nameFirstServlet/servlet-nameurl-pattern/first01/url-pattern
/servlet-mapping
servlet-mappingservlet-nameFirstServlet/servlet-nameurl-pattern/first02/url-pattern
/servlet-mapping
方式二
servletservlet-nameFirstServlet/servlet-nameservlet-classcom.ambow.test.FirstServlet/servlet-class
/servlet
servlet-mappingservlet-nameFirstServlet/servlet-nameurl-pattern/first01/url-patternurl-pattern/first02/url-pattern
/servlet-mapping
2.映射路径中使用通配符格式有两种 :
*.do:优先级最低
/*
url-pattern*.do/url-patternurl-pattern/*/url-patternurl-pattern/test/*/url-pattern
3.缺省Servlet : /
缺省servlet其实就是servlet-mapping元素中url为/的servlet在tomcat安装目录中conf下的web.xml中有这样一个代码
servletservlet-namedefault/servlet-nameservlet-classorg.apache.catalina.servlets.DefaultServlet/servlet-classinit-paramparam-namedebug/param-nameparam-value0/param-value/init-paraminit-paramparam-namelistings/param-nameparam-valuefalse/param-value/init-paramload-on-startup1/load-on-startup
/servletservlet-mappingservlet-namedefault/servlet-nameurl-pattern//url-pattern
/servlet-mapping
缺省Servlet的作用就是处理servlet-mapping中url都匹配不到的请求。
在web访问任何资源都是在访问Servlet当访问tomcat服务中的某个静态html文件和图片时实际上是在访问这个缺省的servlet。
如果在web应用下的web.xml没有1.html对应的url-pattern也就是没有相对应的servlet服务器则会运行缺省servlet由该servlet对应的org.apache.catalina.servlets.DefaultServlet类将1.html静态页面的数据读取出来显示到页面上。
把上述中的代码注释掉重启tomcat服务器输入http://localhost:8080 将发现页面中的图片将显示不出也即是因为这个原因。