servlet笔记
2016-04-24 18:04
239 查看
servlet笔记
Servlet是在服务器上运行的小程序,一个servlet就是一个java类,并且可以通过请求-响应编程模型来访问这个驻留在服务器内存里的servlet程序Tomcat的容器分为四个等级,Servlet的容器管理context容器,一个context对应一个web工程
继承关系
Servlet(interface) 三个方法 Init() service() destroy()
GenericServlet(Abstract class) 与协议无关的Servlet
HttpServlet(Abstract class) 实现了http协议的servlet
自定义的servlet 一般重写(覆盖)doGet()与doPost()方法
手工编写一个Servlet
继承HttpServlet
重写doGet()和doPost()
在web.xml中注册Servlet
javaEE 5.0
Superclass javax.servlet.http.HttpServlet
快捷方式-source(shift+alt+s)-override/implements methods(重写从父类继承而来的方法)
index.jsp
<a href="servlet/HelloServlet">Get方式请求HelloServlet</a> <form action="servlet/HelloServlet" method="post"> <input type="submit" value="Post方式请求HelloServlet" /> </form>
servlet
package servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.xml.ws.Response; public class HelloServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub System.out.println("------处理Get()请求------"); PrintWriter out = response.getWriter(); out.println("<strong>Hello servlet</strong> <br>"); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub System.out.println("------处理Post()请求------"); response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); out.println("<strong>Hello servlet.method:post</strong> <br>"); } }
web.xml的配置
<servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>servlet.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/servlet/HelloServlet</url-pattern> </servlet-mapping>
将这段代码置于web-app标签内
注册方式
使用myEclipse创建servlet
new-servlet
IDE自动生成的servlet相关的文件
tomcat装载servlet
自动装载servlet容器启动时自动装在某些servlet,实现它只需要在web.xml文件的标签内添加代码
<loadon-startup> 数字优先级,越小优先级别越高 </loadon-startup>
客户端首次发送请求
在servlet容器启动后,客户向Servlet发送请求
servlet类文件更新
重新装载Servlet
class文件更改
servlet与九大内置对象
servlet获取表单信息
servlet获取表单,request.getParameter(string);获取复选框类型,getParameterValues(string);
获取成功之后,将信息保存在session中
保存之后使用内部转发或者请求重定向,显示用户信息
servlet获取表单数据源代码
路径跳转
path变量表示项目的根目录<a href="<%=path%>/servlet/HelloServlet" />
web.xml中的url-pattern处必须以/开头,表示项目的根目录
请求重定向
response.sendRedirect(request.getContextPath()+"/yourfile");
请求重定向的使用方式,获得上下文.
获得上下文的方法,request.getContextPath()方式
服务器内部跳转
使用服务器内部跳转方式,/代表了项目的根目录
request.getRequestDispatcher("/yourfile").forward(request,response);
Servlet获取初始化参数
在web.xml中配置servlet时,可以配置一些初始化参数.而在servlet中可以通过ServletConfig接口提供的方法来获取这些参数通过超链接的方式访问servlet
web.xml中servlet标签内init-param标签中的子标签来设置初始化参数,代码段如下
<servlet> ... <init-param> <param-name>username</param-name> <param-value>admin</param-value> </init-param> <init-param> <param-name>password</param-name> <param-value>admin</param-value> </init-param> </servlet>
通过getInitParameter(“string”)获取初始化参数
MVC模型
EIS 企业信息系统
model2
购物车示例
购物车源代码购物车关系图
关系图涂鸦作品,只为了加深理解
购物车设计
属性:
购买商品的集合
方法:
添加,删除,计算总金额
保存属性的数据结构
key-value,采用map方式存储数据结构
测试购物车
遍历购物商品的集合
两个重写
如何保证购物车中不出现相同商品的记录重写Items商品类的hashcode()和equals方法
购买数量的累加
servlet设计
实现购买数量的增加和删减功能的实现
<td>购买数量:<span id="sub" onclick="sub();">-</span><input type="text" id="number" name="number" value="1" size="2"/><span id="add" onclick="add();">+</span></td>
界面层调用
function selflog_show(id) { var num = document.getElementById("number").value; J.dialog.get({id: 'haoyue_creat',title: '购物成功',width: 600,height:400, link: '<%=path%>/servlet/CartServlet?id='+id+'&num='+num+'&action=add', cover:true}); }
显示购物车
首先判断session中是否有购物车对象
相关文章推荐
- POJ 2184 Cow Exhibition(0-1背包)
- 代码仓库
- LeetCode *** 221. Maximal Square
- iOS 对plist增改操作
- Terracotta收购Ehcache (转)
- Leetcode Increasing Triplet Subsequence
- c++中的cin,cin.get(),cin.getline()读取字符串
- AndroidStudio使用笔记
- 240. Search a 2D Matrix II
- git操作详解
- PV(访问量)、UV(独立访客)、IP(独立IP) (转)
- 使用gulp-sass 和 gulp-livereload 自动编译sass文件
- C++ primer
- Unity学习笔记四 - Survival Shooter Tutorial
- 心碎的Basic SQL&Assignment
- MyEclipse做的项目导入到Eclipse中错误
- spring aop的xml配置详解
- Android Framework Java层是如何拦截并分发底层传送来的按键事件
- Linux初认识(一)
- View生成Bitmap