JavaWebServlet
Posted Jomini
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaWebServlet相关的知识,希望对你有一定的参考价值。
一、Servlet简介
Servlet 是J2EE的一个规范,为Java提供统一的web应用规范。
广义的Servlet 是指实现了servlet的类
二、Servlet工作原理
1、原理: 一个http请求到来,容器将请求封装成servlet中的request对象,在request对象中可以打得到http信息,处理完这个请求后,将数据封装成servelt的repsonse对象,应用容器将response对象解析之后封装成http response;
2、Servlet生命周期
初始化init(): 服务器启动时(web.xml中配置load-on-startup=1,默认为0)或者第一次请求该servlet时,就会初始化一个Servlet对象,也就是会执行初始化方法init(ServletConfig conf)
service(运行): 该servlet对象去处理所有客户端请求,在service(ServletRequest req,ServletResponse res)方法中执行
destroy(销毁): 最后服务器关闭时,才会销毁这个servlet对象,执行destroy()方法。
3、web服务器通过Servelt处理动态请求,本质上是帮助程序
Servlet工作流程分为三个阶段。init(初始化),service(运行),destroy(销毁)Servlet没有main方法,所有行为由Container控制。Container就是一个java程序。在加载Servlet的.class后,Servlet会由构造函数生成一个实例,然后Container调用init()方法完成参数的初始化,接着调用service()方法,service会根据网页的请求,调用doGet或者doPost方法,最后调用销毁方法。整个流程如下图:
链接:https://www.zhihu.com/question/21416727/answer/82511153
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。]
三、Servlet开发流程
0、目录
1、先在Tomcat目录下建立一个 WEB-INF文件夹;
2、在WEB-INF文件夹下面建立一个web.xml文件,记录网站配置信息;
建立类文件集,存放servlet(就是目录下面的com.web文件夹)
创建一个servlet --- AdminAddProductService类
package com.web; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.sql.Date; import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.Map; import java.util.UUID; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.beanutils.BeanUtils; import com.domain.Product; import com.service.AdminProductService; /** * Servlet implementation class AdminAddProductServlet */ public class AdminAddProductServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); Map<String, String[]> properties = request.getParameterMap(); Product product = new Product(); try { BeanUtils.populate(product, properties); } catch (IllegalAccessException | InvocationTargetException e) { e.printStackTrace(); } product.setPid(UUID.randomUUID().toString()); private String pimage; product.setPimage("products/1/c_0033.jpg"); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); String pdate = format.format(new Date(0)); product.setPdate(pdate); product.setPflag(0); AdminProductService service = new AdminProductService(); try { service.addProduct(product); } catch (SQLException e) { e.printStackTrace(); } response.sendRedirect(request.getContextPath()+"/adminProductList"); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
web.xml 自动配置以下信息
<servlet> <description></description> <display-name>AdminAddProductServlet</display-name> <servlet-class>com.web.AdminAddProductServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>AdminAddProductServlet</servlet-name> <url-pattern>/adminAddProduct</url-pattern> </servlet-mapping>
访问过程
一个完整教程链接:
https://www.cnblogs.com/whgk/p/6399262.html
以上是关于JavaWebServlet的主要内容,如果未能解决你的问题,请参考以下文章
JavaWebServlet中的request与response