码迷,mamicode.com
首页 > 编程语言 > 详细

Java Web基础 - Servlet

时间:2020-03-19 21:42:45      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:ext   throwable   转发   根据   点击   对象   ram   执行   patch   

Java Web基础学习---Servlet

 

1.什么是servlet

jsp的前生就是servlet,servlet就是在服务器端上运行的小程序,一个servlet就是一个java类,并且可以通过"请求-响应",编程模型来访问这个驻留在服务器内存里的servlet程序

2. 手工编写第一个Servlet

Servlet层级关系:
Servlet(接口)-->GenericServlet(抽象类,与协议无关的Servlet)-->HttpServlet(抽象类,实现了Http协议的Servlet)-->Custom Servlet(自定义的Servlet)

  1. 继承HttpServlet


    技术图片
    image.png
  2. 重写doGet()或者doPost()方法


    技术图片
    image.png
  3. 在Web.xml中注册Servlet


    技术图片
    image.png

    通常我们使用Myeclipse直接创建Servlet


    技术图片
    image.png

 

 

 

 

 

 

3.servlet执行流程

get方式请求HelloServlet,首先用户在页面点击超链接,服务器会根据这个超链接地址扫描web.xml,找出对应的连接url,再找到对应的name,再根据name找到类的地址,超链接代表get请求,调用do get方法


技术图片
image.png

4.Servlet与九大内置对象的对应关系:

1、JSP的——out对象 Servlet——response.getWriter
(严格意义上讲这两个类型是不匹配的response.getWriter()获得的是PrintWriter类型的对象,out是JspWriter类型的对象,都可以对浏览器进行输出,但类型是不一样的。
2、JSP——request对象 Servlet——通过service方法中的request参数获取,也可以通过doGet、doPost方法中的参数来获取。
3、JSP——response对象 Servlet——通过service方法中的response参数获取,也可以通过doGet、doPost方法中的参数来获取。
4、JSP——session对象 Servlet——通过传进来的request的getSession()方法来获取。
5、JSP——application对象 Servlet——通过Servlet中的geServletContext()函数来获取。
6、JSP——exception对象 Servlet——通过抛出异常Throwable方式来获取。
7、JSP——page对象 Servlet——对应this对象。
8、JSP——pageContext对象 Servlet——对应PageContext对象。
9、JSP——Config对象 Servlet——通过Servlet中的getServletConfig函数来获取。

5.Servlet路径跳转

一、JSP跳转到Servlet
1、相对路径,如href="servlet/TestServlet"
***注意:如果写成"/servlet/TestServlet"会报错,因为第一个‘/‘表示的是【服务器根目录:http://localhost:8080/
2、绝对路径,通过内置成员变量path实现,如href="<%=path%>/servlet/TestServlet"。
***注意:这里的path得到的是项目根目录,如【http://localhost:8080/Servlet002_GetFormDemo

二、Servlet跳转JSP
1、请求重定向:response.sendRedirect(request.getContextPath()+"/xxx.jsp");这里通过request.getContextPath()方法获得项目根目录,或者通过"../xxx.jsp"取得上层路径得到
2、服务器内部转发:request.getRequestDispatcher("../xxx.jsp").forward(req,resp);
小结:都可以通过../xxx.jsp得到

6.获取初始化参数

在web.xml中配置servlet时,可以配置一些初始化参数,而在servlet中可以通过servletConfig接口提供的方法类取得这些参数,如下图红框中在web.xml文件中初始化参数


技术图片

通过类里面的init()方法,this.getInitParameter("password")来从xml配置文件中获取类属性password所指定的初始值,如下图中定义username和password两个属性,在init()中获取xml文件中指定的初始值


技术图片
image.png

7.model2模型

在之前的JSP学习中介绍了Model1模型,即JSP+javabean模型,这里介绍第二种模型Model2模型.
java Web的model2开发模型就是MVC(模型层,视图层,控制层)思想的体现
充当模型层的是JavaBean,充当控制层的是Servlet,充当视图层的是JSP。然后要访问的数据就在数据库层
工作原理:
首先由JSP页面向控制层提交请求,然后由控制层Servlet实例化一个模型层的对象,或者说是调用一些模型层的功能,然后由模型层访问数据库层(读取数据库),模型层得到结果后再反馈给控制层,控制层根据得到的结果选择给用户呈现不同的页面(跳转到不同的JSP页面)。


技术图片
image.png


作者:飞灰非辉
链接:https://www.jianshu.com/p/a784a5ecf5a2
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Java Web基础 - Servlet

标签:ext   throwable   转发   根据   点击   对象   ram   执行   patch   

原文地址:https://www.cnblogs.com/yangf428/p/12527152.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!