web学习02(模拟Servlet本质)

模拟Servlet本质

充当SUN公司的角色,制定Servlet规范
        javax.servlet.Servlet接口
充当Tomcat服务器的开发者

充当Webapp的开发者
         BankServlet implements Servlet

        UserListServlet implements Servlet

        UserLoginServlet implements Servlet


        对于javaweb程序员来说,我们只需要做两件事:
                编写一个类实现Servlet接口。
                将编写的类配置到配置文件中,在配置文件中:指定请求路径和类名的关系。

        注意:
                这个配置文件的文件名不能乱来。固定的

                这个配置文件的存放路径不能乱来。固定的。

                文件名、文件路径都是SUN公司制定的Servlet规范中的明细。

        严格意义上来说Servlet其实并不是简单的一个接口:
                Servlet规范中规定了:
                        一个合格的webapp应该是一个怎样的目录结构

                        一个合格的webapp应该有一个怎样的配置文件

                        一个合格的webapp配置文件路径放在哪里

                        一个合格的webapp中java程序放在哪里

                        这些都是Servlet规范中规定的。
         Tomcat服务器要遵循Servlet规范。JavaWEB程序员也要遵循这个Servlet规范。这样Tomcat           服务器和webapp才能解耦合。

Servlet规范是一个什么规范?
        遵循Servlet规范的webapp,这个webapp就可以放在不同的WEB服务器中运行。(因为这个             webapp是遵循Servlet规范的。)

Servlet规范包括什么呢?        

        规范了哪些接口

        规范了哪些类

        规范了一个web应用中应该有哪些配置文件

        规范了一个web应用中配置文件的名字

        规范了一个web应用中配置文件存放的路径

        规范了一个web应用中配置文件的内容

        规范了一个合法有效的web应用它的目录结构应该是怎样的。……

开发一个带有Servlet

(Java小程序)的webapp(重点)

1.开发步骤是怎样的?
        第一步:在webapps目录下新建一个目录,起名crm (这个crm就是webapp的名字)。当然,也                         可以是其它项目,比如银行项目,可以创建—个目录bank,办公系统可以创建—个                         oa.
                注意:crm就是这个webapp的根
        第二步:在webapp的根下新建一个目录:WEB-INF
                注意:这个目录的名字是Servlet规范中规定的,必须全部大写,必须一模一样。必须的

        第三步:在WEB-INF目录下新建—个目录:classes
                注意;这个目录的名字必须是全部小写的classes。这也是Servlet规范中规定的。另外这                            个目录下一定存放的是Java程序编译之后的class文件(这里存放的是字节码文件)

        第四步:在WEB-INF目录下新建—个目录:lib
                注意;这个目录不是必须的。但如果一个webapp需要第三方的jar包的话,这个jar包要放                           到这个lib目录下,这个目录的名字也不能随意编写,必须是全部小写的lib。例如                              java语言连接数据库需要数据库的驱动jar包。那么这个jar包就一定要放到lib目录                              下。这Serlet规范中规定的。
        第五步;在WEB-INF目录下新建—个文件: web.xml
                注意:这个文件是必须的,这个文件名必须叫做web.xml。这个文件必须放在这里。一个                           合法的webapp,web.xml文件是必须的,这个web.xml文件就是一个配置文件,在                            这个配置文件中描述了请求路径和Servlet类之间的对照关系。
                        这个文件最好从其他的webapp中拷贝,最好别手写。复制粘贴

        第六步:编写一个java程序,这个小Java程序也不能随意开发,这个小java程序必须实现                              Servlet接口。

                这个Servlet接口不在JDK当中。(因为Servlet不是JawaSE了。Servlet属于lavaEE,是另                  外的一套类库。)

                Servlet接口(Servlet.class文件)是Oracle提供的。(最原始的是sun公司提供的。)

                Servlet接口是JavaEE的规范中的一员。

                Tomcat服务器实现了Servlet规范,所以Tomcat服务器也需要使用Servlet接口。Tomcat                  服务器中应该有这个接口,Tomcat服务器的CATALINA_HOMElib目录下有一个servlet-                     api.jar,解压这个servlet-api.jar之后,你会看到里面有一个Servlet.class文件。

                重点:从JakartaEE9开始,Serlet接口的全名变了: jakarta.servlet.Servlet

                注意:编写这个java小程序的时候,java源代码你愿意在哪里就在哪里,位置无所谓,你                          只需要将java源代码编译之后的class文件放到classes目录下即可。
        第七步:编译我们编写的HelloServlet
                重点:你怎么能让你的HelloSerMlet编译通过呢?配置环境变量                                         CLASSPATHCLASSPATH=.;C:ldevlapache-tomcat-10.0.12Nliblservlet-api.jar

                思考:以上配置的CLASSPATH和Tomcat服务器运行有没有关系?
                        没有任何关系,以上配置这个环境变量只是为了让你的HelloServlet能够正常编译                           生成class文件。、

        第八步:将以上编译之后的HelloServlet.class文件拷贝到WEB-INF\classes目录下

        第九步:在web.xml文件中编写配置信息,让"请求路径"夭和"Servlet类名"关联在一起。
                这一步用专业术语描述:在web.xml文件中注册Servlet类。

        第十步:启动Tomcat服务器

        第十一步:打开浏览器,在浏览器地址栏上输入一个url,这个URL必须是:
                        http://127.0.0.1:8080/crm/fdsa/fd/safld/sa/fd/sa/fd
        非常重要的一件事:
浏览器上的请求路径不能随便写这个请求路径必须和web.xml文件中的            url-pattern一致

        注意:浏览器上的请求路径和web.xml文件中的url-pattern的唯一区别就是:浏览器上的请求路                    径带项目名:/crm。浏览器上编写的路径太复杂,可以使用超链接。

                    (非常重要: html页面只能放到WEB-INF目录外面。)

                以后不需要我们编写main方法了。tomcat服务器负责调用main方法,Tomcat服务器启                    动的时候执行的就是main方法。我们javaweb程序员只需要编写Servlet接口的实现类,                 然后将其注册到web.xml文件中,即可。

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xm1ns="https ://jakarta.ee/xml/ns/jakartaee"xmlns : xsi="http: //www. w3.or g/2001/XMLSchema-instance"xsi:schemaLocation="https://jakarta.ee/xm1/ns/jakartaee
https://jakarta.ee/xm1/ns/jakartaee/web-app_5_0.xsd"
version="5.0"
metadata-complete="true ">

</web-app>

 

 

向浏览器响应一段HTML代码

public void service(ServletRequest request, ServletResponse response) throws                     
    ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.print("<h1>hello Servlet</h1>");
}

Servlet连接数据库

Servlet是java程序,所有在Servlet中完全可以编写JDBC代码连接数据库

在一个webapp中去连接数据库,需要将驱动jar包放到WEB-INF/lib目录下(com.mysql.cj.jdbc.Driver这个类就在驱动jar包当中)

    @Override
    public void service(ServletRequest request, ServletResponse response)
            throws ServletException, IOException {
        //设置响应的内容类型
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        //jdbc连接数据库
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        try {
            //1.注册驱动
            Class.forName("com.mysql.cj.jdbc.Driver");

            //2.获取连接
            String url = "jdbc:mysql://localhost:3306/textdatabase01";
            String root = "root";
            String password = "666";
            conn = DriverManager.getConnection(url,root,password);

            //3.获取预编译的操作对象
            String sql = "select s.no,s.name from t_student s";
            ps = conn.prepareStatement(sql);

            //4.执行sql语句
            rs = ps.executeQuery();

            //5.处理结果集
            while (rs.next()){
                String no = rs.getString("no");
                String name = rs.getString("name");
                //System.out.println(no + ":" + name);
                //输出到控制台
                out.print(no + ":" + name + "<br>");
                //输出到浏览器上
            }

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            //释放资源
            if (rs != null) {
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (ps != null) {
                try {
                    ps.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
完整全套资源下载地址:https://download.csdn.net/download/qq_27595745/70761177 【完整课程列表】 完整版Java web开发教程PPT课件 Java开发进阶教程 第01章 JavaScript简介以及基本语法(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第02章 Dom模型,控制客户端元素(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第03章 表单验证,常用函数(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第04章 自定义web服务器(共14页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第06章 SERVLET(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第07章 JSP语法及运行过程(共13页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第08章 JSP内置对象(共22页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第09章 jstl、el、java bean(共18页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第10章 过滤器、监听器、自定义标签(共19页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第11章 AJAX实现(共11页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第12章 自定义mvc框架(共11页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第13章 spring ioc aop(共18页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第14章 spring mvc介绍,原理以及搭建(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第15章 spring mvc核心对象拦截器(共26页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第17章 自定义orm框架(共11页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第18章 mybatis框架的搭建以及应用(共13页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第19章 mybatis高级应用(共21页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第20章 数据库连接池,缓存(共15页).pptx 完整版Java web开发教程PPT课件 Java开发进阶教程 第22章 常用框架的介绍以及环境搭建(共16页).pptx JS课程案例ebookHTML\网上书店需求文档.doc

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值