Java Web基础学习---Servlet
1.什么是servlet
jsp的前生就是servlet,servlet就是在服务器端上运行的小程序,一个servlet就是一个java类,并且可以通过"请求-响应",编程模型来访问这个驻留在服务器内存里的servlet程序
2. 手工编写第一个Servlet
Servlet层级关系:
Servlet(接口)-->GenericServlet(抽象类,与协议无关的Servlet)-->HttpServlet(抽象类,实现了Http协议的Servlet)-->Custom Servlet(自定义的Servlet)
- 继承HttpServlet
image.png
- 重写doGet()或者doPost()方法
image.png
- 在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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
原文地址:https://www.cnblogs.com/yangf428/p/12527152.html