一、了解Servlet
1.实现一个基本的web应用(这个web应用中没有java小程序)
-
找到CATALINA_HOME\webapps目录
-
因为所有的webapp要放在这个目录下(tomcat服务器的要求)
-
-
webapps目录下的每一个子目录就是一个web服务
-
web服务中的页面的相对路径
-
页面中超链接中ip地址和端口号可以省略
-
2.BS结构系统的角色和协议
在B/S结构的系统,存在哪些角色
-
浏览器软件开发商
-
WEB Server开发团队
-
WEB 应用开发团队
-
数据库开发团队
WEB Server 和WEB 应用之间有一套规范,Servlet规范用于解除web server 与web 应用之间的耦合度
浏览器与web server
-
也需要传输协议,即超文本传输协议
数据与web 应用之间也需要一套传输协议JDBC
3.Servlet规范是一个什么规范?
-
遵循servlet规范的webapp、这个webapp就可以在不同的web服务器中运行,(因为webapp是遵循servlet规范的)
-
servlet规范了包括什么?
-
规范了哪些接口
-
规范了那些类
-
规范了一个web应用中应该有哪些配置文件
-
规范一个配置文件的名字
-
规范了配置文件存放的路径
-
规范了一个web应用中配置文件的内容
-
规范了一个合法有效的webapp的目录结构是怎么样的
-
4.开发一个带有servlet的webapp(重点)
-
开发步骤是怎么样的呢?
-
第一步:在webapps目录下,新建一个子目录,作为一个webapp
-
第二步:在webapp目录下新建一个目录 WEB-INF 必须一模一样,必须大写,
-
第三步:在WEB-INF目录下新建一个目录,classes,这也是servlet规范中规范的,这个目录下一定存放的是编译好的class文件
-
第四步:在WEB-INF目录下新建一个lib目录:这个目录不是必须的,但是如果引入了第三方jar包,这个jar必须放在这个目录下
-
第五步:在WEB-INF目录下创建文件 web.xml 配置文件,这个文件是必须的,一个合法的webapp必须有web.xml配置文件
-
第六步:编写一个java程序,这个小程序也不能随意开发,这个小程序必须实现servlet接口
-
这个servlet接口不在JDK中
-
Servlet接口是Oracle提供的
-
Servlet接口时javaEE的规范中的医院
-
Tomcat服务器实现了servlet规范,所以Tomcat服务器也需要使用Servlet-API.jar
-
使用Servlet-API.jar中的Servlet.class
-
-
第七步:编译实现Servlet接口的java小程序,必须将Selvlet-API.jar包安装到CLASS_PATH环境变量下
-
第八步:将编译好的class文件放到webapp中的classes路径下
-
第九步:在web.xml文件中配置java小程序与
<!--servlet描述信息 --> <!--每一个servlet小程序都有一个对应的servletMapping映射--> <servelt> <servlet-name> 一个servlet的唯一名字,识别名称 </servlet-name> <!--java小程序的全限定类名--> <servlet-calss> </serlvet-classs> </servlet> <!--servlet映射信息--> <servlet-mapping> <!--这个也是随便的,不过要与上面的servlet对应--> <servlet-name>一个servlet的唯一名字,识别名称 </servlet-name> <!--这里需要一个路径,这个路径要求是必须以 / 开始,当前这个路径可以随便写--> <url-pattern>/aa/aa/bb </url-pattern> </servlet-mapping>
-
一个合法的webapp目录结构
webapp root |----WE-INF |----classes(字节码) |----lib(第三方jar) |----web.xml(注册servlet) |----html |----css |----javascript |----imgs
-
5.关于JavaEE版本
-
javaEE目前最高版本时JavaEE8
-
JavaEE被Oracle捐献给Apache了
-
Apache将JavaEE换名了,较做JakartaEE
-
javaEE升级之后javaEE9不再是javaee9,而是叫做jakartaee9
-
在tomcat9以及tomcat9之前的版本
6.关于Servlet接口中的5个方法
-
public class ServletTest implements Servlet{ //第一个方法 public void init(ServletConfig config){ } //第二个方法 public void service(ServletRequest request,ServletResponse response) throws ServletException,IOException{ //怎么将一个信息直接输出到浏览器上? } //第三个方法 public void destroy(){ } //第四个方法 public Strig getServletInfo(){ return ""; } //第五个方法 public ServletConfig getServletConfig(){ return null; } }
-
浏览器中路径为IP地址+端口号+项目名+url-pattern
-
浏览器上编写路径太复杂,因此可以使用HTML页面(放在WEB-INF目录外)超链接方式,<a href ="路径为:IP地址端口号(可以省略)+项目名+路径">
7.解决Tomcat服务器在Dos命令窗口中的乱码问题(控制台乱码)
-
在tomcat安装文件中,找到config目录下的lognging.properties日志配置文件,找到java.util.logging.ConsoleHandler.encoding = GBK(因为Win系统的DOS命令窗口的编码方式是GBK方式)
二、Servlet接口中方法学习
1.认识servlet接口中的五个方法
public class ServletTest implements Servlet{
//第二个方法
public void service(ServletRequest request,ServletResponse response) throws ServletException,IOException{
//怎么将一个信息直接输出到浏览器上?
//需要使用ServletResponse接口:response
//response表示响应,从服务器向浏览器发送数据叫做响应。
//通过响应的getWriter方法获取PrintWriter对象
//设置响应的文件类型以及编码格式
response.setContextType("text/html;charser=utf-8");
PrintWriter out = servletResponse.getWriter();
out.print("这里数据输出到浏览器,在浏览器中显示")
//out.flusg;
//out.close;
//这个流不需要关闭,因为tomcat会将这个io流刷新与关闭
//浏览器是可以识别html代码的。
//设置响应内容的类型时,不要在获取流之后设置,response.setContextType("text/html");
}
}
2.在servlet中编写JDBC程序来连接数据库
public class ServletTest implements Servlet{
//第二个方法
public void service(ServletRequest request,ServletResponse response) throws ServletException,IOException{
//注册驱动
//创建连接
//获取预编译对象
//执行Sql
//处理结果集
//释放资源
response.setContextType("text/html;charser=utf-8");
PrintWriter out = servletResponse.getWriter();
}
}
标签:web,Java,servlet,public,学习,webapp,Servlet,目录 From: https://blog.csdn.net/tonight_730/article/details/137059610