发表于: 2019-12-01 22:56:37

1 1169



今天做了什么:

花费了很多时间在jsp页面和controller的编写上,但是效果并不好

1.利用mybaits逆向工程从数据库中生成实体类,mapper和接口

在pom.xml里配置org.mybatis.generator配置

在resources中配置generatorConfig.xml

生成成功以后

mapper文件(部分)

2.学习servlet

Servlet简介

> Server + let
> 意为:运行在服务器端的小程序。
> Servlet实际上就是一个接口。
- 狭义上的Servlet,指的就是Servlet接口
- 广义上的我们认为凡是实现Servlet接口的类,都称为是一个Servlet
> Servlet的作用:
 1.接收用户发送的请求
 2.调用其他的java程序来处理请求
 3.根据处理结果,返回给用户一个页面
> Servlet的HelloWorld:
 1.创建一个类并实现Servlet接口
 2.在web.xml文件中对Servlet进行配置
                <servlet>
                    <servlet-name>别名</servlet-name>
                    <servlet-class>全类名</servlet-class>
                </servlet>
                <servlet-mapping>
                    <servlet-name>别名</servlet-name>
                    <url-pattern>需要servlet处理的请求地址</url-pattern>
                </servlet-mapping>
> Servlet的三个名字:
            <servlet-name>
                - Servlet的别名,程序员通过别名对Servlet进行配置
            <servlet-class>
                - Servlet的全类名,服务器通过全类名来创建Servlet的实例
            <url-pattern>

                - Servlet映射的请求地址,用户通过该地址访问Servlet

Servlet的生命周期

> Servlet的生命周期,指Servlet的对象从被创建到被销毁的过程。
> Servlet的生命周期方法:
 1.构造器:
  - Servlet第一次处理请求时,会调用构造器,来创建Servlet实例。
  - 只会调用一次,Servlet是单例模式,他是以多线程的方式调用service()方法.
  - Servlet不是线程安全,所以尽量不要再service()方法中操作全局变量。
 
 2.init()方法:
  - 构造器调用之后马上被调用,用来初始化Servlet,只会调用一次。
 3.service()方法:
 - Servlet每次处理请求时都会调用service()方法,用来处理请求,会调用多次。
 

 4.destroy()方法:

 - Servlet对象销毁前(WEB项目卸载时)调用,用来做一些收尾工作,释放资源。

相关接口

①ServletConfig
 代表:当前Servlet的配置信息,每一个Servlet都有其唯一对应的ServletConfig。
                <servlet>
                    <servlet-name>AServlet</servlet-name>
                    <servlet-class>com.atguigu.servlet.AServlet</servlet-class>
                    <init-param>
                        <param-name>user</param-name>
                        <param-value>root</param-value>
                    </init-param>
                    <init-param>
                        <param-name>password</param-name>
                        <param-value>123123</param-value>
                    </init-param>
                </servlet>
 
获取:由Tomcat服务器创建,最终作为参数传递到init()方法中,我们可以在init()方法直接使用。
                    当我们通过继承HttpServlet创建Servlet时,由于父类已经实现ServletConfig接口,
                        所以我们可以在Servlet中直接调用ServletConfig的方法。
 
功能:
【1】 获取Servlet的别名
【2】 获取当前Servlet的初始化参数。
                        <init-param>
                            <param-name>user</param-name>
                            <param-value>root</param-value>
                        </init-param>
                        <init-param>
                            <param-name>password</param-name>
                            <param-value>123123</param-value>
                        </init-param>
【3】 获取当前WEB应用的ServletContext对象。
 
②ServletContext
 代表:当前的WEB应用,一个WEB应用对应一个唯一的ServletContext对象,
 ServletContext对象在项目启动时创建,在项目卸载时销毁。
 获取:通过ServletConfig的getServletContext()方法获取。
 功能:
 【1】 可以获取整个WEB应用的初始化参数
                    <context-param>
                        <param-name>phone</param-name>
                        <param-value>1388888888</param-value>
                    </context-param>
 【2】 可以获取资源的真实路径(物理路径),主要在文件的上传和下载时使用。
 【3】 可以作为一个域对象在不同的web资源之间共享数据。(下回分解)
 
GenericServlet
        - 通用Servlet的父类
        - 相比Servlet接口GenericServlet更加简单一些,但是我们最终实际上使用的HttpServlet

HttpServlet
 - HttpServlet继承了GenericServlet,而GenericServlet实现Servlet接口
 - 所以我们可以同构继承HttpServlet来创建一个Servlet。
 - HttpServlet重写service()方法:
 1.在该方法中先将ServletRequest和ServletResponse 强转为了HttpServletRequest和HttpServletResponse。
 2.然调用重载的service()方法,并将刚刚强转得到对象传递到重载的方法中。
 - 重载service(HttpServletRequest request , HttpServletResponse response)
 1.在方法中获取请求的方式(get或post)
 2.在根据不同的请求方式去调用不同的方法:
 如果是GET请求,则调用doGet(HttpServletRequest request , HttpServletResponse response)
 如果是post请求,则调用doPost(HttpServletRequest request , HttpServletResponse response)
  - 结论:
  当通过继承HttpServlet来创建一个Servlet时,我们只需要根据要处理的请求的类型,来重写不同的方法。
   处理get请求,则重写doGet()
   处理post请求,则重写doPost()

HttpServletRequest 
 代表:浏览器发送给服务器的请求报文。
  获取:该对象由Tomcat服务器创建,最终作为参数传递到doGet或doPost方法中,我们可以在这两个方法中直接使用。
   功能:
 【1】获取用户发送的请求参数
  request.getParameter("username");
 【2】获取项目的名字(用来设置绝对路径)
  request.getContextPath();
 【3】作为一个域对象,在不同的WEB资源之间共享数据。
 【4】请求的转发
  request.getRequestDispatcher("target.html").forward(request, response);
 
HttpServletResponse
代表:服务器发送给浏览器的响应报文。
获取:该对象由Tomcat服务器创建,最终作为参数传递到doGet或doPost方法中,我们可以在这两个方法中直接使用。
 功能:
【1】响应给浏览器一个网页或者是网页片段(设置的是响应报文的响应体)
        response.getWriter("");
【2】请求的重定向
       response.sendRedirect("target.html");
 
转发和重定向:(掌握)

 


今天遇到的问题:

1配置mybaits逆向工程生成mapper的时候,连续遇到3个问题:

1.mysql-connector-java<的版本太高,换成了低版本的5.1.23

2.在pom文件中配置的时候,mysql的连接依赖要额外配置mysql-connector-java,不然无法得到mysql的驱动

3.逆向工程生成文件的时候相关表名,数据库,用户、密码,生成的文件地址(包名要写对)


明天要做什么

完成增删改查页面jsp的编写,编写controller,将整个小demo跑起来

  

返回列表 返回列表
评论

    分享到