Java Servlet学习

一、了解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版本

  1. javaEE目前最高版本时JavaEE8

  2. JavaEE被Oracle捐献给Apache了

  3. Apache将JavaEE换名了,较做JakartaEE

  4. javaEE升级之后javaEE9不再是javaee9,而是叫做jakartaee9

  5. 在tomcat9以及tomcat9之前的版本

6.关于Servlet接口中的5个方法

  1. 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;
        }
    }
    ​
  2. 浏览器中路径为IP地址+端口号+项目名+url-pattern

  3. 浏览器上编写路径太复杂,因此可以使用HTML页面(放在WEB-INF目录外)超链接方式,<a href ="路径为:IP地址端口号(可以省略)+项目名+路径">

7.解决Tomcat服务器在Dos命令窗口中的乱码问题(控制台乱码)

  1. 在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();
    }
}

 

  • 44
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值