码迷,mamicode.com
首页 > 其他好文 > 详细

servlet笔记

时间:2016-04-29 19:02:53      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:

servlet笔记

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

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

技术分享

继承关系

  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获取表单信息

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

servlet笔记

标签:

原文地址:http://blog.csdn.net/alive2012/article/details/51234789

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!