jsp+servlet三、以servlet理解服务端请求处理与请求的状态分发
2017-03-11 15:43
274 查看
一、在eclipse中创建java web项目
记得创建时点next添加web.xml文件,配置请求的数据需要写入到web.xml文件中1、添加servlet.jar包
servlet-api.jar servlet.jar2、创建请求处理Action类
创建action类,这个类继承HttpServlet ,添加版本号,并重写service/doGet/doPost方法,service可以处理get/post方式提交的请求,所以一般都是直接重写service方法,3、状态分发原理
在提交请求时给定参数state,由state来指定请求进入到service方法后具体执行的请求处理方法,从而实现同一个请求使用不同参数实现同一模块的不同功能。@Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("utf-8"); resp.setContentType("text/html;charset=utf-8"); String state=req.getParameter("state"); if(state.equals("test")){ this.test(req, resp); } else if(state.equals("login")){ this.login(req, resp); } }
4、请求配置
ajax1com.lattice.ajax01.Ajaxajax1/ajax
二、向前台返回数据
1、将数据存储到request作用域中
2、将数据存储在session作用域中
HttpSession session=req.getSession();存储在request或session作用域中的数据都可以在前台通过C标签(将在下一篇博文中演示)或者S标签来获取,当然,也可以写java代码获取,但是这样写的话会使得jsp文件中大量存在java代码,导致后期难以维护和修改。
3、在处理ajax请求时,需要创建out对象,并且一般想前台传递的是json或者json数组
PrintWriter out=resp.getWriter();同时此处贴出Ajax的一个例子(包含js原生实现和jquery实现):
js原生实现ajax
js原生实现Ajax //源生态的JS代码完成Ajax操作(动态无刷新),异步提交。 //ActiveXObject("microsoft.XMLHTTP"); var request=new XMLHttpRequest();//针对非IE浏览器 var url="<%=path%>/ajax";//url 表示请求提交的路径 URL统一资源定位符 URI 统一资源描述符 request.open("post",url,true);//准备打开一个ajax请求 request.setRequestHeader("content-type","application/x-www-form-urlencoded"); request.send("state=test&user=lattice");//方式ajax请求 get方式不能传递参数 。 //onreadystatechange 表示判断状态是否发生改变 。 request.onreadystatechange=function (){ //readyState 表示相应状态 4表示相应完成 if(request.readyState==4){ var span=document.getElementById("span1"); //之后交互完成之后 才可以接受数据 。request.responseText 接受数据 var values=request.responseText;//responseText; var newJsons=eval(values); span.innerHTML+=" "+newJsons[0].name+newJsons[0].age; //span.innerHTML+=values[0].name+values[0].age+" "; } };
jquery Ajax 实现:
$.ajax({ type: "POST", url: "<%=path %>/activity", data: "state=queryExecution&activity_id="+$("#execution_activity_id").val(), dataType : "json", success: function(msg){ //alert(msg); var jsons=eval(msg); //jquery遍历数组 $.each(jsons,function(index,item){ $("#activity_num").val(item.activity_num); }); } });
相关文章推荐
- 前端控制器是整个MVC框架中最为核心的一块,它主要用来拦截符合要求的外部请求,并把请求分发到不同的控制器去处理,根据控制器处理后的结果,生成相应的响应发送到客户端。前端控制器既可以使用Filter实现(Struts2采用这种方式),也可以使用Servlet来实现(spring MVC框架)。
- socket服务端处理多个客户端的请求学习理解
- Servlet请求的处理
- Servlet处理Json请求数据包
- JSF请求处理过程(二)请求处理过程总览(FacesServlet#service)
- 三、表单请求Servlet处理
- 错误: Sys.WebForms.PageRequestManagerServerErrorException: 在服务器上处理 请求时出现未知错误。服务器返回的状态码为: 500
- Servlet上传文件源码理解,不用控件,帮助你理解 (对请求头的解析)
- Servlet的“请求转发(Forward)”和“重定向(Redirect)”理解
- Sys.WebForms.PageRequestManagerServerErrorException: 在服务器上处理请求时出现未知错误。服务器返回的状态码为: 500
- 当用Servlet来处理http请求页面时,如何使HTML页面中的
- JavaWeb项目的中文乱码的原因以及Servlet中处理GET请求和POST请求编码过滤器
- +学会处理ASP.NET的页面和请求状态信息+
- servlet请求乱码问题的一些处理
- 在使用updatepanel 时,上传到服务器出现如下错误: Sys.WebForms.PageRequestManagerServerErrorException: 在服务器上处理请求时出现未知错误。服务器返回的状态码为: 500
- PageRequestManagerServerErrorException: 在服务器上处理 请求时出现未知错误。服务器返回的状态码为: 500
- Servlet客户请求的处理:HTTP请求报头HttpServletRequest接口应用
- 深入理解Magento – 第二章 – Magento请求分发与控制器
- Servlet如何处理一个请求?
- 请求JSP页面时,服务端会把jsp编译成java类(servlet)