servlet 保存数据到session输出到页面 页面刷新一次读取session

servlet 保存数据到session输出到页面 页面刷新一次读取session

<script>
  $(document).ready(function(){//页面载入时像servlet请求数据
   $.post('../Order.do', {
    action: 'OrderMsg',
    s: $("#s").val(),
    v: $("#v").val()
    }, function(data) {
      reurl();//返回数据时刷新页面一次(因为数据保存在session)
    },"html");
  });

  function reurl(){//只刷新页面一次
   url = location.href; //把当前页面的地址赋给变量 url
   var times = url.split("!"); //分切变量 url 分隔符号为 "?"
   if(times[1] != 1){ //如果?后的值不等于1表示没有刷新
   url += "!1"; //把变量 url 的值加入 ?1
   self.location.replace(url); //刷新页面
   }
  }
 </script>

标签: servlet

简单示例$.post与servlet交互

index.jsp
---------------------------------------
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Test</title>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
function  onInvokeAction(){
$.post('url', {
    text: 'my string',
    number: 23
}, function(data) {
    $('#presidents').html(data);
});
}
</script>
</head>
<body onload="onInvokeAction()">
<input type="button"  value="12"  >
<div id="presidents"></div>
</body>
</html>

--------------------------------------------------------------
Ajax.java
-----------------------------------------------------


import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Ajax extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                response.setContentType("text/html");
                PrintWriter out = response.getWriter();
                out.println(String.valueOf(System.currentTimeMillis()));
                out.flush();
                out.close();
        }                       
}
-----------------------------------------------------------

至此我们就实现了简单的AJAX功能简单说一下代码,jsp页面的js代码很少,是调用了jQuery lib 实现
<script type="text/javascript">
function  onInvokeAction(){
$.post('url', {//request提交方式,如果是post 那么就是 $.post ,'/Ajax'是处理请求的servlet映射路径,也可以是struts里面的 .do,如果是GET方式提交那么就是$.get('url?parameter1=value&parameter2=value……')

text: 'my string',//需要设定的参数,servlet处理的时候request.getParameter("test")得到的就是“my string”

number: 23//同上,多个参数提交的格式为{name1:value,name2:value,name3:value}

}, function(data) {//定义AJAX回调函数,传入从servlet返回的“data”
 
  $('#presidents').html(data);//查找CSS样式ID为presidents的元素并以html格式 用“data”替换掉,data可以是html代码,例如“<input type='button' value ='hahaha'>”
});
}
</script>

===============================================

标签: AJAX, servlet, jQuery

sevlet学习摘要

1.    Servlet
2.    什么是servlet:在web容器中运行的服务器端JAVA程序,主要用于响应HTTP请求。Servlet一般用于MVC中的控制器部分。
3.    什么是servlet容器:用来管理servlet生命周期的应用程序如(tomcat)。
4.    servlet构架:
public class servlet extendsHttpServlet{
    public void init() throws ServletException {}//初始化
    public void doGet(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{}//doget
public void doPost(HttpServletRequest request,HttpServletResponse response)throws IOException,ServletException{}//dopost
public void destroy() {}//销毁servlet对象
}
5.    写Hello Servlet
public class Hello extends HttpServlet {   
    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        Response.setContentType ("text/html");
        PrintWriter out = response.getWriter();
        out.println("<HTML>");
        out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");
        out.println(" <BODY>");
        out.print("Hello");
        out.println(" </BODY>");
        out.println("</HTML>");
        out.flush();
        out.close();
    }   
    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        doGet(request,response)       
    }
}
6.    servlet的继承关系


7.    描述servlet容器与servlet API的关系
8.    什么是JSP Page
java server page 是servlet的扩展,强调web页面表达,编译后是一个类servlet。
9.    servlet与JSP各有什么特点,如何选择这两种技术
10.    JSP构架模型
Model1:纯jsp 维护难,代码可复用性差
Model2:jsp+javabean 在jsp中使用usebean标签,代码在jsp中本质同Model1
Mvc:jsp+servlet+javabean

11.    JSP标签
动作标签:jsp:include
          jsp:forword
          jsp:usebean
          jsp:set/get Property
指令标签:<%@page……%>
<%@include…..%>
<%@taglib…..%>
12.    servlet中如何
1)    从HTML表单中获得参数
request.getParameterNames();enumer;
request.getParameter(); String
2)    如何获得请求头部的信息
Enumeration enumer=request.getHeaderNames();
While(enumer. HasMoreElements())
{
    String header= enumer.next();
    String result=request.getHeader(header);
    Out.print(result);
}
3)    如何获得客户cookie的信息
request.getCookies();array[]
4)    如何设置response的头部信息
response.setHeader();
5)    如何设置响应的content type
response.setContentType(“text/html charset=utf-8”);
6)    如何获得I/O流、text流、二进制流
7)    如何从当前的servlet重定向到其他的URL
response.sendRedirect(“url”)
RequstDispatcher rd=request.get RequstDispatcher(“url”)
Rd.forword(request,response);
8)    如何向客户端写cookie
Cookie cookie=new Cookie(“object”,”jklj”);
Cookie.setMaxAge(时间);
Response.addCookie(cookie);
13.    描述servlet的生命周期,谁来控制servlet的生命周期,servlet生命周期在J2EE规范中是如何来定义的
服务器实例化一个servlet对象,容器运行其init方法,请求到达时运行其service方法,service方法根据请求的类型调用(doGet,doPost)方法,当服务器决定将实例销毁时调用其destory方法。
14.    如何创建Request Dispatcher对象,如何将请求转发给其它的web资源(包含其它的web资源),描述如何利用request来存状态,以及与其它保存状态方法有什么区别
RequstDispatcher rd=request.get RequstDispatcher(“url”)
Rd.forword(request,response);
Request.setAttribute(“object”,”内容”);
一旦产生响应request的生命周期就结束了
15.    如何在web.xml中配置servlet
定义
<servlet>
        <servlet-name>name</servlet-name>
<servlet-class>package</servlet-class>
</servlet>
映射
<servlet-mapping>
    <servlet-name>name</servlet-name>
    <url-patten>/patten</url-patten>
</servlet-mapping>
16.    获得ServletConfig对象
ServletConfig sc=getServletConfig();
17.    如何获得servletContext对象
servletContext sc=getservletContext();
18.    <html><body>
<a href=”/servlet/HelloServlet”>POST</a>
</body></html>
调用servlet时采用了doPost、doGet、doForm、doHref中的哪个方法
doGet方法
19.    doGet:
PrintWriter out = res.getWriter();
Out.println(“<html><body>Hello</body></html>”);
If(!res.isCommitted()) 判断是否response提交了
If(reg.getParameter(”name”)==null)
{
    res.sendError(HttpServletResponse.SC_UNAUTHORIZED);
}
20.    说明如下的web的资源应该放在web容器中的什么目录下,静态页面JSP、servlet class、web.xml、Tag libraries、JAR File、java class以及需要保护的资源文件
tomcat容器
web.xml, Tag libraries: \webapps\工程名\WEB-INF
servlet,javaclass: \webapps\工程名\WEB-INF\classes \
jar: \webapps\工程名\WEB-INF\lib\
21.    如何打war包
将web项目压缩成rar文件然后将后缀名改为war。
22.    如何利用ServletContext对象获得初始化参数
servletContext sc=getservletContext();
String s=sc.getInitParameter(key);
23.    如何在配置文件中配置ServletContext初始化参数
<init-param>
    <param-name>name</param-name>
    <param-value>vlaue</param-value>
</init-param>
24.    写代码来将对象放入ServletContext中以及取出对象
servletContext sc=getservletContext();
sc.setAttribute(key,value);
25.    描述request session web application的区别,创建监听器类来监听每个scope的生命周期
生命周期不同request产生响应时生命周期结束,session在web.xml中设置生命周期时间、手动清除web容器重启生命周期结束。Webapplication容器重启、手动清除
26.    如何配置listener
27.    如何来写以及配置filter
28.    创建一个request或response对象的包装类
29.    写一段servlet代码,用来将对象存入session以及从session中取出该对象
HttpSession session=request.getSession();
session.setAttribute(key,value);
30.    描述用来访问session对象的API
31.    说明session对象的生命周期
session在web.xml中设置生命周期时间、手动清除web容器重启生命周期结束
32.    写一段代码来响应当对象加入session时的事件
33.    描述web容器使用了什么机制来管理session
34.    如何使session失效
session在web.xml中设置生命周期时间、手动清除web容器重启生命周期结束
35.    描述将session与客户端Birding的流程及方法
36.    当client不支持cookie时,如何使用session
37.    什么是Authentication(识别(用户)):识别用户 是谁?什么是Authorization(授权)对识别后的用户给予什么样的权限。数据的完整性:提交数据,操作数据,数据库数据。数据的机密性:加密,HTTPS
38.    JSP中指令标签的形式
JSP中声明标签的形式
JSP中代码段标签的形式
JSP中动作标签的形式
JSP中注释标签的形式
JSP中的表达式标签的形式
39.    指令标签有哪些?
40.    action标签有哪些?
41.    page的属性
42.    <%!int i;%>→成员变量
<%int j;%>→局部变量
<%=i++%><%=j++%>
43.    JSP中的内置对象
44.    <%@ include file=” ”%>与<jsp:include page=” ”/>不同
45.    jsp:useBean(id,scope,type,type,class)的使用