servlet笔记

来源:互联网 发布:企业网络优化方案 编辑:程序博客网 时间:2024/05/22 17:05

servlet笔记

Servlet是在服务器上运行的小程序,一个servlet就是一个java类,并且可以通过请求-响应编程模型来访问这个驻留在服务器内存里的servlet程序

Tomcat的容器分为四个等级,Servlet的容器管理context容器,一个context对应一个web工程

tomcat容器等级

继承关系

  1. Servlet(interface) 三个方法 Init() service() destroy()
  2. GenericServlet(Abstract class) 与协议无关的Servlet
  3. HttpServlet(Abstract class) 实现了http协议的servlet
  4. 自定义的servlet 一般重写(覆盖)doGet()与doPost()方法

手工编写一个Servlet

  1. 继承HttpServlet
  2. 重写doGet()和doPost()
  3. 在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与jsp内置九大对象

servlet获取表单信息

servlet获取表单,request.getParameter(string);
获取复选框类型,getParameterValues(string);
获取成功之后,将信息保存在session中
保存之后使用内部转发或者请求重定向,显示用户信息

servlet获取表单数据源代码

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模型

mvc.png

EIS 企业信息系统

model2

model1

model2

购物车示例

购物车源代码

购物车关系图

关系图涂鸦作品,只为了加深理解

购物车设计

属性:
购买商品的集合
方法:
添加,删除,计算总金额

保存属性的数据结构
key-value,采用map方式存储数据结构

cartEntity.png 购物车实现方法

测试购物车

遍历购物商品的集合

两个重写

如何保证购物车中不出现相同商品的记录

重写Items商品类的hashcode()和equals方法

购买数量的累加

servlet设计

cartDemo

实现购买数量的增加和删减功能的实现

<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中是否有购物车对象

0 0
原创粉丝点击