JavaWeb(一)Servlet
一、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
JavaWeb(一)Servlet的更多相关文章
- JavaWeb学习——Servlet相关的接口和类
JavaWeb学习——Servlet相关的接口和类 摘要:本文主要学习了Servlet相关的接口和类. Servlet的接口和类 三种方式 实现Servlet有三种方式: 实现javax.servle ...
- JavaWeb之Servlet入门(二)
1. 准备 在JavaWeb之Servlet入门(一)中,我们完成了第一个Servlet程序,完成了从URL到后台控制器的中转过程,接下来我们延续JavaWeb之Servlet入门(一)学习下如何传参 ...
- JavaWeb学习--Servlet认识
Servlet开发 用户在浏览器中输入一个网址并回车,浏览器会向服务器发送一个HTTP请求.服务器端程序接受这个请求,并对请求进行处理,然后发送一个回应.浏览器收到回应,再把回应的内容显示出来.这种请 ...
- IDEA新建javaWeb以及Servlet简单实现
刚开始用IDEA开发,还不太熟悉,因此写一个教程,加深印象 1.新建一个Web项目 两种方法:java 和 Java Enterprise(推荐) 第一种)通过Java工程创建,这个方法需要手动导入T ...
- Intellij IDEA创建javaWeb以及Servlet简单实现
1.创建web工程 File --> New --> Project...
- javaweb之servlet 全解
①Servlet概述 ⑴什么是Servlet Servlet是JavaWeb的三大组件之一,它属于动态资源.Servlet的作用是处理请求, 服务器会把接收到的请求交给Servlet来处理,在Serv ...
- JavaWeb学习—Servlet
1.什么是Servlet Servlet是一个继承HttpServlet类的Java类 Servlet必须部署在web服务器端,用来处理客户端的请求 2.Servlet运行过程 Web Client ...
- JavaWeb之Servlet总结
今天上班居然迟到了,昨天失眠了,看完吐槽大会实在不知道做些什么,刚好朋友给我发了两个JavaWeb的练习项目,自己就又研究了下,三四点才睡,可能周日白天睡的太多了,早上醒来已经九点多了,立马刷牙洗脸头 ...
- javaWEB之Servlet
Servlet 1. 什么是Servlet * Servlet是JavaWeb三大组件之一(Servlet.Filter.Listener) * Servlet是用来处理客户端请求的动态资源 * ...
- Intellijidea建javaWeb以及Servlet简单实现
一.创建并设置javaweb工程1.创建javaweb工程File --> New --> Project... 点击Project后出现如下界面,选择Java Enterprise,选中 ...
随机推荐
- Day28--Python--网络通信协议 tcp与udp下的socket
昨日内容回顾: 1. CS架构 服务端客户端架构 软件CS架构: 京东,淘宝,QQ,微信,暴风影音,快播 硬件CS架构: 打印机 服务端: 提供服务的 客户端: 享受服务的 BS架构: 浏览器和服务端 ...
- Day20--Python--约束和异常处理
1. 异常处理(处理异常,抛出异常,自定义异常) 异常: 程序运行过程中产生的错误 1. 产生异常. raise 异常类(), 抛出异常 2. 处理异常: try: xxxxxxxx # 尝试执行的代 ...
- 测试唯一ID支持多大的并发量
昨天突然考虑到这个问题,在并发比较大的情况下,你用于生成唯一ID的函数是否还能正常运行?也就是说比如我一下子进来40000个订单,你需要生成不重复的订单ID吧? 对于这个问题我以前没考虑过,但是可能是 ...
- Codeforces Round #523 (Div. 2)
Codeforces Round #523 (Div. 2) 题目一览表 来源 考察知识点 完成时间 A Coins cf 贪心(签到题) 2018.11.23 B Views Matter cf 思 ...
- java和c#值类型和引用类型
java数据类型分为基本数据类型和引用类型 基本数据类型:int float double bool char byte 引用数据类型:string array class interfa ...
- (贪心 线段不相交问题)codeVs 1214 线段覆盖
题目描述 Description 给定x轴上的N(0<N<100)条线段,每个线段由它的二个端点a_I和b_I确定,I=1,2,……N.这些坐标都是区间(-999,999)的整数.有些线段 ...
- 剑指Offer_编程题_12
题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. class Solution { public: double Power(d ...
- springboot入门使用
一.什么是springboot,有什么用 springboot是一个开发框架,其出现的目的利用约定大于配置的思想来让开发者摆脱spring繁琐的配置,简化开发.其不是spring框架的替代品,是spr ...
- 2018牛客网暑期ACM多校训练营(第一场)A Monotonic Matrix(LGV)
题意 分析 考虑01和12的分界线是(n, 0)到(0,m)的两条不相交(可重合)路径分界线以及分界线以上的点是一种,分界线下是一种平移其中一条变成(n-1, -1)到(-1,m-1); 此时起点为{ ...
- MySQL忘记root密码的解决办法
# 1.停掉MySQL进程 [root@standby ~]# /etc/init.d/mysqld stop Shutting down MySQL... SUCCESS! [root@standb ...