标签:
Servlet是在服务器上运行的小程序,一个servlet就是一个java类,并且可以通过请求-响应编程模型来访问这个驻留在服务器内存里的servlet程序
Tomcat的容器分为四个等级,Servlet的容器管理context容器,一个context对应一个web工程
继承关系
手工编写一个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相关的文件
自动装载
servlet容器启动时自动装在某些servlet,实现它只需要在web.xml文件的标签内添加代码
<loadon-startup>
数字优先级,越小优先级别越高
</loadon-startup>
客户端首次发送请求
在servlet容器启动后,客户向Servlet发送请求
servlet类文件更新
重新装载Servlet
class文件更改
servlet获取表单,request.getParameter(string);
获取复选框类型,getParameterValues(string);
获取成功之后,将信息保存在session中
保存之后使用内部转发或者请求重定向,显示用户信息
path变量表示项目的根目录
<a href="<%=path%>/servlet/HelloServlet" />
web.xml中的url-pattern处必须以/开头,表示项目的根目录
请求重定向
response.sendRedirect(request.getContextPath()+"/yourfile");
请求重定向的使用方式,获得上下文.
获得上下文的方法,request.getContextPath()方式
服务器内部跳转
使用服务器内部跳转方式,/代表了项目的根目录
request.getRequestDispatcher("/yourfile").forward(request,response);
在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”)获取初始化参数
EIS 企业信息系统
model2
关系图涂鸦作品,只为了加深理解
购物车设计
属性:
购买商品的集合
方法:
添加,删除,计算总金额
保存属性的数据结构
key-value,采用map方式存储数据结构
测试购物车
遍历购物商品的集合
如何保证购物车中不出现相同商品的记录
重写Items商品类的hashcode()和equals方法
购买数量的累加
实现购买数量的增加和删减功能的实现
<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中是否有购物车对象
标签:
原文地址:http://blog.csdn.net/alive2012/article/details/51234789