cookie和servlet
来源:互联网 发布:php扩展加密 编辑:程序博客网 时间:2024/06/06 12:46
关于ajax:
前台使用:
$.ajax({
url:"warehouse/tilesort!getTileSortListAjax.action",
type:"post",
async:false,
data:(采用key:value形式赋值)
success:function(data){
var jsonObject = eval("("+data+")");
for(var i=0;i<jsonObject.length;i++){
//动态赋值,select
var tr=$("<option value="+jsonObject[i][0]+">"+jsonObject[i][1]+"</option>");
$("#tileSortSelect").append(tr);
}
}
后台数据封装:
//采用JSONwang格式封装数据
JSONWang jSONWang = new JSONWang();
String jsonString = jSONWang.fromList(tileNameList);
HttpServletResponse response = ServletActionContext.getResponse();
response.setCharacterEncoding("utf-8");
try {
response.getWriter().print(jsonString);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
关于分页:
分页PageUtil
package com.aaatile.web.util;
import java.util.Enumeration;
import javax.servlet.http.HttpServletRequest;
import org.omg.CORBA.PUBLIC_MEMBER;
public class PageUtil {
//当前页码值
private int pageNo;
//每页显示的数量
private int pageSize;
//总页数
private int pageCount;
//总数据行数
private int totalCount;
//分页查询连接的地址
String url="";
public PageUtil() {
super();
// TODO Auto-generated constructor stub
}
public int getPageNo() {
return pageNo;
}
public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}
public PageUtil(int pageNo, int pageSize, int totalCount,
HttpServletRequest request) {
super();
this.pageNo = pageNo;
this.pageSize = pageSize;
this.totalCount = totalCount;
//动态获取url;
url=request.getRequestURI()+"?";
//获取所有请求的参数名的集合
Enumeration<String> enumeration = request.getParameterNames();
//不能通过下标获取元素,采用while循环遍历,拼接url字符串
while(enumeration.hasMoreElements()//判断下一个是否还有元素
){
String param=enumeration.nextElement();
if(!"pageNo".equals(param)){//除了pageNo之外的所有参数都要拼接
if(url.charAt(url.length()-1)=='?'){//如果URL最后为?,直接拼参
url+=param+"="+request.getParameter(param);
}else{//如果URL最后不是为?,先拼入&再拼接参数
url+="&"+param+"="+request.getParameter(param);
}
}
if(url.charAt(url.length()-1)!='?'){
url+="&";
}
}
}
/**
* 拼接分页的字符串
* @return
*/
public String getPageString(){
StringBuffer stringBuffer =new StringBuffer();
//计算总页数
pageCount=totalCount%pageSize==0?totalCount/pageSize:totalCount/pageSize+1;
//PageCount=Math.ceil(totalCount/((double)PageSize));
//当前页码值小于1或者大于总页数时,设置默认值保护
if(pageNo<1){
pageNo=1;
}
if(pageNo>pageCount){
pageNo=pageCount;
}
//如果不是第一页可以点上页和首页
if(pageNo>1){
stringBuffer.append("<a href='"+url+"pageNo=1'>首页</a> <a href='"+url+"pageNo="+(pageNo-1)+"'>上一页</a> ");
}else{
//如果是第一页,就设置假点击上一页和首页
stringBuffer.append("首页 上一页 ");
}
//如果不是最后一页可以点击下一页和尾页
if(pageNo<pageCount){
stringBuffer.append("<a href='"+url+"pageNo="+(pageNo+1)+"'>下一页</a> <a href='"+url+"pageNo="+pageCount+"'>尾页</a>");
}else{
//如果是最后一页不可点击下一页和尾页
stringBuffer.append("下一页 尾页 ");
}
//添加跳转下拉页码框,遍历添加value
stringBuffer.append("转到第<select onchange=javascript:window.location.href='"+url+"pageNo='+this.value>" );
for(int i=1;i<=pageCount;i++){
if(pageNo==i){
stringBuffer.append("<option value="+i+" selected>"+i+"</option>");
}
else{
stringBuffer.append("<option value="+i+">"+i+"</option>");
}
}
stringBuffer.append("</select>页");
return "<div class='pageCss'>共"+totalCount+"条"+pageCount+"页 "+stringBuffer+"</div>";
}
}
关于servlet使用PageUtil:
String pageNo = request.getParameter("pageNo");
String pageSize = request.getParameter("pageSize");
if(pageNo==null||"".equals(pageNo)){
pageNo="1";
}
if(pageSize==null||"".equals(pageSize)){
pageSize="4";
}
EmpService empService = new EmpServiceImpl();
//serviceImpl层中分页查询数据(这里进行了前台传过来每页要显示的pageSize)
List<Emp> empList = empService.getEmp(Integer.valueOf(pageNo),Integer.valueOf(pageSize));
int count = empService.countEmp();
System.out.println(count);
//使用pageUtil包封装底层数据,并传到前台页底
PageUtil pageUtil = new PageUtil(Integer.valueOf(pageNo),Integer.valueOf(pageSize),count,request);
String msg = pageUtil.getPageString();
request.setAttribute("msg", msg);
request.setAttribute("pageSize",pageSize);
request.setAttribute("empList", empList);
request.getRequestDispatcher("/jsp/emp.jsp").forward(request, response);
}
servlet的父类:BaseServlet:(其他servlet可以继承此servlet)
package com.aaatile.web.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.lang.reflect.Method;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class BaseServlet extends HttpServlet {
/**
* 当其他servlet继承此方法时,可以在servlet中写单个类的所有方法
*/
@Override
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
// 1.获取子类 创建子类或者调用子类的时候 this代表的是子类对象
//@SuppressWarnings("rawtypes")
Class clazz = this.getClass();
// 2.获取请求的方法
String m = request.getParameter("method");
if(m==null){
m="index";
}
// 3.获取方法对象
Method method = clazz.getMethod(m, HttpServletRequest.class, HttpServletResponse.class);
// 4.让方法执行 返回值为请求转发的路径
String s=(String) method.invoke(this, request,response);//相当于 userservlet.add(request,response)
// 5.判断s是否为空
if(s!=null){
request.getRequestDispatcher(s).forward(request, response);
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException();
}
}
public String index(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
return null;
}
}
使用cookie(添加cookie)
if("ok".equals(saveName)){
Cookie c= new Cookie("customerNo", customerNo);//cookie的值设定
//设置cookie路径
c.setPath(request.getContextPath()+"/");
//设置cookie时长
c.setMaxAge(3600);
//写回浏览器
response.addCookie(c);
}
删除cookie:
for(Cookie cookie : cookies){
if(cookie.getName().equals("customer")){
cookie.setValue(null);
cookie.setMaxAge(0);// 立即销毁cookie
cookie.setPath("/");//保持路径和设置时的路径一致
response.addCookie(cookie);
break;
}
}
前台使用:
$.ajax({
url:"warehouse/tilesort!getTileSortListAjax.action",
type:"post",
async:false,
data:(采用key:value形式赋值)
success:function(data){
var jsonObject = eval("("+data+")");
for(var i=0;i<jsonObject.length;i++){
//动态赋值,select
var tr=$("<option value="+jsonObject[i][0]+">"+jsonObject[i][1]+"</option>");
$("#tileSortSelect").append(tr);
}
}
后台数据封装:
//采用JSONwang格式封装数据
JSONWang jSONWang = new JSONWang();
String jsonString = jSONWang.fromList(tileNameList);
HttpServletResponse response = ServletActionContext.getResponse();
response.setCharacterEncoding("utf-8");
try {
response.getWriter().print(jsonString);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
关于分页:
分页PageUtil
package com.aaatile.web.util;
import java.util.Enumeration;
import javax.servlet.http.HttpServletRequest;
import org.omg.CORBA.PUBLIC_MEMBER;
public class PageUtil {
//当前页码值
private int pageNo;
//每页显示的数量
private int pageSize;
//总页数
private int pageCount;
//总数据行数
private int totalCount;
//分页查询连接的地址
String url="";
public PageUtil() {
super();
// TODO Auto-generated constructor stub
}
public int getPageNo() {
return pageNo;
}
public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}
public PageUtil(int pageNo, int pageSize, int totalCount,
HttpServletRequest request) {
super();
this.pageNo = pageNo;
this.pageSize = pageSize;
this.totalCount = totalCount;
//动态获取url;
url=request.getRequestURI()+"?";
//获取所有请求的参数名的集合
Enumeration<String> enumeration = request.getParameterNames();
//不能通过下标获取元素,采用while循环遍历,拼接url字符串
while(enumeration.hasMoreElements()//判断下一个是否还有元素
){
String param=enumeration.nextElement();
if(!"pageNo".equals(param)){//除了pageNo之外的所有参数都要拼接
if(url.charAt(url.length()-1)=='?'){//如果URL最后为?,直接拼参
url+=param+"="+request.getParameter(param);
}else{//如果URL最后不是为?,先拼入&再拼接参数
url+="&"+param+"="+request.getParameter(param);
}
}
if(url.charAt(url.length()-1)!='?'){
url+="&";
}
}
}
/**
* 拼接分页的字符串
* @return
*/
public String getPageString(){
StringBuffer stringBuffer =new StringBuffer();
//计算总页数
pageCount=totalCount%pageSize==0?totalCount/pageSize:totalCount/pageSize+1;
//PageCount=Math.ceil(totalCount/((double)PageSize));
//当前页码值小于1或者大于总页数时,设置默认值保护
if(pageNo<1){
pageNo=1;
}
if(pageNo>pageCount){
pageNo=pageCount;
}
//如果不是第一页可以点上页和首页
if(pageNo>1){
stringBuffer.append("<a href='"+url+"pageNo=1'>首页</a> <a href='"+url+"pageNo="+(pageNo-1)+"'>上一页</a> ");
}else{
//如果是第一页,就设置假点击上一页和首页
stringBuffer.append("首页 上一页 ");
}
//如果不是最后一页可以点击下一页和尾页
if(pageNo<pageCount){
stringBuffer.append("<a href='"+url+"pageNo="+(pageNo+1)+"'>下一页</a> <a href='"+url+"pageNo="+pageCount+"'>尾页</a>");
}else{
//如果是最后一页不可点击下一页和尾页
stringBuffer.append("下一页 尾页 ");
}
//添加跳转下拉页码框,遍历添加value
stringBuffer.append("转到第<select onchange=javascript:window.location.href='"+url+"pageNo='+this.value>" );
for(int i=1;i<=pageCount;i++){
if(pageNo==i){
stringBuffer.append("<option value="+i+" selected>"+i+"</option>");
}
else{
stringBuffer.append("<option value="+i+">"+i+"</option>");
}
}
stringBuffer.append("</select>页");
return "<div class='pageCss'>共"+totalCount+"条"+pageCount+"页 "+stringBuffer+"</div>";
}
}
关于servlet使用PageUtil:
String pageNo = request.getParameter("pageNo");
String pageSize = request.getParameter("pageSize");
if(pageNo==null||"".equals(pageNo)){
pageNo="1";
}
if(pageSize==null||"".equals(pageSize)){
pageSize="4";
}
EmpService empService = new EmpServiceImpl();
//serviceImpl层中分页查询数据(这里进行了前台传过来每页要显示的pageSize)
List<Emp> empList = empService.getEmp(Integer.valueOf(pageNo),Integer.valueOf(pageSize));
int count = empService.countEmp();
System.out.println(count);
//使用pageUtil包封装底层数据,并传到前台页底
PageUtil pageUtil = new PageUtil(Integer.valueOf(pageNo),Integer.valueOf(pageSize),count,request);
String msg = pageUtil.getPageString();
request.setAttribute("msg", msg);
request.setAttribute("pageSize",pageSize);
request.setAttribute("empList", empList);
request.getRequestDispatcher("/jsp/emp.jsp").forward(request, response);
}
servlet的父类:BaseServlet:(其他servlet可以继承此servlet)
package com.aaatile.web.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.lang.reflect.Method;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class BaseServlet extends HttpServlet {
/**
* 当其他servlet继承此方法时,可以在servlet中写单个类的所有方法
*/
@Override
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
// 1.获取子类 创建子类或者调用子类的时候 this代表的是子类对象
//@SuppressWarnings("rawtypes")
Class clazz = this.getClass();
// 2.获取请求的方法
String m = request.getParameter("method");
if(m==null){
m="index";
}
// 3.获取方法对象
Method method = clazz.getMethod(m, HttpServletRequest.class, HttpServletResponse.class);
// 4.让方法执行 返回值为请求转发的路径
String s=(String) method.invoke(this, request,response);//相当于 userservlet.add(request,response)
// 5.判断s是否为空
if(s!=null){
request.getRequestDispatcher(s).forward(request, response);
}
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException();
}
}
public String index(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
return null;
}
}
使用cookie(添加cookie)
if("ok".equals(saveName)){
Cookie c= new Cookie("customerNo", customerNo);//cookie的值设定
//设置cookie路径
c.setPath(request.getContextPath()+"/");
//设置cookie时长
c.setMaxAge(3600);
//写回浏览器
response.addCookie(c);
}
删除cookie:
for(Cookie cookie : cookies){
if(cookie.getName().equals("customer")){
cookie.setValue(null);
cookie.setMaxAge(0);// 立即销毁cookie
cookie.setPath("/");//保持路径和设置时的路径一致
response.addCookie(cookie);
break;
}
}
阅读全文
0 0
- Servlet Cookie和Session
- cookie和servlet
- servlet之session和cookie
- JSP和Servlet中的Cookie
- Servlet和Cookie综合应用
- Servlet会话Cookie和Session
- Servlet介绍(4)-----cookie和session
- Servlet/JSP之“Cookie和Session原理”
- Servlet 中的 Cookie 、 Session 和 ServletContext
- Servlet——Cookie 和 Session
- servlet中的cookie和session问题小结
- servlet中写入和读取删除cookie
- Servlet规范之会话:Session和Cookie
- Servlet——Cookie 和 Session
- Servlet——Cookie 和 Session
- Servlet和Cookie统计访问次数
- 一个简单的servlet-cookie和session
- servlet中cookie和session操作
- APUE-umask&chmod
- linux上java的配置
- BZOJ 2125 最短路 (拆环重建图 lca spfa)
- android studio 分析内存溢出
- ubuntu上minigui调试环境的建立
- cookie和servlet
- Java设计模式(五) 组合模式
- java(11):tomcat简介与使用(上)
- ios TestFlight的使用
- Javassist的用法
- View的事件传递机制
- 反编译工具ILSpy下载
- @Controller和@RestController的区别?
- 6-1 PTA 单链表逆转