1 Servlet 简介
1 Servlet是sun公司提供的一门用于开发动态web资源的技术。用户若用Java技术开发一个动态web资源或者网页,需要完成以下2个步骤:
① 编写一个Java类,实现servlet接口
② 把开发好的Java类部署到web服务器中
2 Servlet - Java 小程序
① servlet 就是java程序(java 类)
② servlet 遵循servlet 开发规范
③ servlet是运行在服务器端
④ 功能强大,几乎可以完成网站所有的需求
⑤ 学习jsp的基础
3 Servlet 和 Tomcat 在网络中的位置
4 Servlet 快速入门案例
Servlet 开发有三种方式
① 实现servlet 接口
② 通过继承GenericServlet
③ 通过继承HttpServlet
① 实现servlet 接口
- 建立 web应用 TestWeb
- 在 TestWeb 下建立 WEB-INF/web.xml
- 在 WEB-INF 下建立 classes目录(servlet就要在这开发),建立lib目录
- 实现 Servlet接口来开发 Servelt 编写FirstServlet.java 类然后编译
import javax.servlet.*;
import javax.servlet.http.*; public class FirstServlet implements Servlet
{
//该函数用于初始化Servlet,把Servlet加载到内存,整个Servlet生命周期只会被调用一次
public void init(ServletConfig config) throws ServletException
{ } //获取ServletConfig对象
public ServletConfig getServletConfig()
{
return null;
} //该函数是服务函数,业务逻辑在这个函数实现
public void service(ServletRequest request, ServletResponse response)
{
PrintWriter out = response.getWriter(); out.println("Hello Servlet"+" "+ new java.util.Date());
} //返回Servlet配置信息
public String getServletInfo()
{
return null;
} //destroy()方法只会被调用一次,在 Servlet 生命周期结束时被调用
public void destroy()
{ }
}
根据 Servlet 规范部署 Servlet,打开WEB-INF/web.xml 添加如下代码部署 FirstServlet:
<!--Deploys the servlet to here -->
<servlet>
<!-- 自己定义 -->
<servlet-name>FirstServlet</servlet-name>
<!--FirstServlet所在项目的全路径(非物理路径,而是以项目WEB-INF\classes为根目录开始计算) -->
<servlet-class>FirstServlet</servlet-class>
</servlet> <servlet-mapping>
<!-- 与上面的servlet-name保持一致 -->
<servlet-name>FirstServlet</servlet-name>
<!-- 外部访问的url: 自己定义 -->
<url-pattern>/First</url-pattern>
</servlet-mapping>
重启Tomcat,浏览器访问FirstServlet,输入的地址为:http://localhost:8080/TestWeb/First,最后的First就是web.xml 里配置的,可以随意定义。
③ 继承HttpServlet
通过继承HttpServlet 开发 Servlet,需要重写 doGet,doPost方法。
首先编写一个Login.html 用于访问SecondServlet,Login.html必须放在 \LatinyWeb\WEB-INF下
<html>
<body>
<form action="/TestWeb/Second" method="post">
user:<input type="text" name="username"/>
<input type="submit" value="login"/>
</body>
</html>
然后编写SecondServlet.java 类,并在 web.xml配置外部访问的 url。
public class SecondServlet extends HttpServlet
{
//在HttpServlet中,设计者对post与get提交分别处理
//doGet()与doPost()调用Servlet的service方法
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
{
res.getWriter().println("This is doGet method!");
} protected void doPost(HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException
{
res.getWriter().println("This is doPost method!");
res.getWriter().println(req.getParameter("username")+" visits.");
}
}
浏览器访问
5 Servlet生命周期
Servlet生命周期简述
① 当Servlet第一次被调用时,首先会触发init 函数,该函数会把servlet实例加载到内存,它在整个生命周期只会被调用一次。
② 然后Servlet 的 service函数会被调用,后台业务逻辑都在此实现
③ 第二次及以后调用Servlet,都是直接调用service函数。
④ 当web服务器停止或者reload时,tomcat关闭或者关机时,都会调用Servlet的destory函数销毁Servlet对象
Servlet 运行过程
Serlvet程序是由web服务器调用,web服务器接收到客户端请求后:
① Web服务器首先检查 Serlvet是否创建并且装载到内存,如果是则到第2步,如果未创建装载Serlvet 实例,则创建Servlet实例对象并且调用init函数装载该Servlet实例对象到内存中。
② 创建一个用于封装http请求消息的 HttpServletRequest 对象和一个代表http响应消息的 HttpServletResponse 对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。
③ Tomcat重启或者关闭时;reload 该webapp时;关闭电脑时;都会调用destroy()方法。
最新文章
- AbpZero--1.如何开始
- [NHibernate]Parent/Child
- jquery实现输入框聚焦,键盘上下键选择城市
- sqlserver 连接远程数据库小结
- `cocos2dx 非完整` UI解析模块
- linux2.6内核compat_ioctl函数
- unity 脚本(自定义组件)的事件触发关系
- SCAU 1138 代码等式
- 从XML文件乱码问题,探寻其背后的原理
- 处理IIS报“由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面”
- Java版本
- C语言格式化输入输出
- 数据库SQL语句中 查询选修了全部课程的学生的学号和姓名
- log4cplus在VS项目中的使用
- 洛谷P4344 [SHOI2015]脑洞治疗仪(ODT)
- debian图形界面安装安装GNOME中文桌面环境_刀光剑影_新浪博客 - Google Chrome
- day7 新三级菜单
- Yii2将查询数据变为键值对数组及查询构建器
- gcd和lcm模板
- 解决Sublime Text 3中文显示乱码和语法着色问题 等问题
热门文章
- NGINX Load Balancing - HTTP Load Balancer
- ab和jmeter进行GET/POST压力测试的使用心得和比较
- Codeforces Round #542 C. Connect 搜索
- 关于发邮件报错535 Error:authentication failed解决方法
- BZOJ1095:[ZJOI2007]Hide 捉迷藏(动态点分治)
- NET缓存框架CacheManager在混合式开发框架中的应用(1)-CacheManager的介绍和使用
- .NET 环境中使用RabbitMQ 转发 http://www.cnblogs.com/yangecnu/p/4227535.html
- ORA-27154: post/wait create failed ORA-27300 ORA-27301 ORA-27302
- 初学Python——文件操作
- 视觉机器学习------KNN学习