`

Servlet中Request,Response,Ajax,转发,重定向等的关系

    博客分类:
  • Java
阅读更多

Servlet中Request,Response,Ajax,转发,重定向等的关系

 

一.Request设置参数,通过转发或者重定向,跳转到页面:

if ("specialDoc".equals(action)) {
	String userName = null;
	User user = (User) request.getSession().getAttribute("user");
	if (user != null) {
		userName = user.getUsername();
	}
	long id = Long.valueOf(request.getParameter("id"));
	ProjectDao projectDao = new ProjectDao();
	List list = projectDao.getItemById(id);
	if (list != null && list.size() > 0) {
		Object[] obj = (Object[]) list.get(0);
		request.setAttribute("itemName", obj[1]);
		request.setAttribute("remark", obj[2]);
		request.setAttribute("createDate", obj[3]);
		request.setAttribute("list", list);
	}
	if (userName == null) {
		request.setAttribute("userName", "nobody");
	}
	else {
		request.setAttribute("userName", userName);
	}
	request.getRequestDispatcher("/frontShow/special-info.jsp").forward(request, response);
	return;
}

1.request设置参数:

2.获取转发器,转发地址跳回原页面或跳到新页面:

 

二.Response用于Ajax返回数据(一般返回Json字符串):

if ("pageAjax".equals(action)) {
	String userName = null;
	User user = (User) request.getSession().getAttribute("user");
	if (user != null) {
		userName = user.getUsername();
	}
	String tableName = request.getParameter("table");
	int start = Integer.valueOf(request.getParameter("page"));
	String pageSizesString = request.getParameter("pageSize");
	int pageSize = 0;
	if (pageSizesString != null) {
		pageSize = Integer.valueOf(request.getParameter("pageSize"));
	}
	pageDao = new PageDaoImpl();
	pageDao.init(start, pageSize, tableName, level);//Page对象初始化
	Page page = pageDao.getPage();//获取Page对象
	JSONObject jObj = new JSONObject();
	jObj.put("userName", userName);
	jObj.put("currentPage", page.getCurrentPage());
	jObj.put("totalPages", page.getTotalPage());
	jObj.put("hasPrevious", page.isHasPreviousPage());
	jObj.put("hasNext", page.isHasNextPage());
	jObj.put("isFirst", page.isFirstPage());
	jObj.put("isLast", page.isLastPage());
	jObj.put("list", page.getList());
	response.setContentType("text/json;charset=UTF-8");
	PrintWriter out = response.getWriter();
	out.print(jObj);
	out.close();
	return;
}

1.创建Json字符串:

2.通过PrintWriter输出,即返回给Ajax:

 

  • 大小: 4.7 KB
  • 大小: 4.4 KB
  • 大小: 7.8 KB
  • 大小: 3.5 KB
分享到:
评论

相关推荐

    JSP-Servlet-Ajax考题共享

    - JSP中使用`response.sendRedirect()`进行重定向,`request.getRequestDispatcher()`用于请求转发。 - 重定向URL可见于浏览器地址栏,而请求转发则不显示。 - 设置JSP的字符编码通常在page指令中用`contentType=...

    jsp+servlet+javabean实现网上商城项目完整源码

    例如,用户提交的购买请求会被转发到相应的Servlet,Servlet会验证用户信息、处理库存、计算价格等,然后通过请求转发或重定向控制页面跳转。Servlet的多线程特性保证了其在高并发环境下的性能。 再者,JavaBean是...

    Ajax跨域详解与代码

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletResponse res = (HttpServletResponse) response; res.set...

    servlet基础

    在Servlet中,可以通过`response.getWriter().print()`返回JSON或XML数据,前端使用JavaScript的XMLHttpRequest对象发送异步请求并接收数据。 - 常见的库如jQuery的`$.ajax()`或现代浏览器的`fetch()` API可简化...

    ajax重写方法搭配后台filter返回status实现ajax请求跳转登录页面

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpRequest = (HttpServletRequest) request; ...

    基于jsp+servlet网上书城

    在基于jsp+servlet的网上书城中,JSP主要负责展示用户界面,如书籍列表、书籍详情、购物车等,通过内置对象(如request、response、session等)与Servlet通信,传递用户请求和响应数据。 2. **Servlet**:Servlet是...

    servlet编写购物车的添加、修改

    此外,前端页面也需要与这些Servlet进行交互,通过AJAX发送请求,并根据响应更新页面元素。 总之,使用Servlet编写购物车功能涉及模型类的设计、HTTP请求的处理、会话管理以及可能的数据库交互。理解这些概念并熟练...

    servlet服务应用基础.docx

    转发过程中,可以使用`request.setAttribute()`存储数据,然后在目标Servlet中使用`request.getAttribute()`获取。 - **重定向**(外部跳转):通过`response.sendRedirect()`方法实现,地址栏会显示新的URL,不...

    Servlet实现增删改查功能

    7. **转发与重定向**:在完成操作后,Servlet可能会使用`RequestDispatcher`的`forward()`方法将控制权传递给其他页面,或者使用`response.sendRedirect()`方法向浏览器发送新的HTTP响应,引导用户访问其他页面。...

    常用web数据传递

    总之,JSP、JavaScript和Servlet之间的数据传递涉及多种机制,包括请求转发、重定向、会话管理、隐藏字段、AJAX、Cookie、HTTP头以及MVC模式等。理解并熟练运用这些方法,对于提升Web应用程序的交互性和用户体验至关...

    音乐管理系统(servlet传参数)

    在IT行业中,Servlet是一种用于开发Java Web应用程序的关键技术,它扩展了Web服务器的功能,使得服务器能够处理动态内容。本教程将深入讲解如何在音乐管理系统中使用Servlet进行参数传递,特别是与CD购物车相关的...

    javabean+servlet 简单聊天室(会议)实现

    - JSP的内置对象如`request`、`response`、`session`等,可以直接在页面上使用,简化了与Servlet的交互。 6. **通信机制**: - 用户输入的信息通过HTTP请求发送到Servlet,Servlet处理后更新会话状态,再将结果...

    使用JSP+servlet实现的车辆租借系统.zip

    在JSP中,可以使用response.sendRedirect()进行重定向,或者使用request.getRequestDispatcher()进行请求转发。在车辆租借系统中,根据业务逻辑,合理选择跳转方式,如用户登录成功后重定向到主页面,订单提交后...

    北大青鸟 testWeb

    开发者通常会在Servlet中实现业务逻辑,然后通过转发或重定向将控制权交给JSP,以显示处理结果。 Ajax,全称为Asynchronous JavaScript and XML,是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。...

    ajax+jsp打造的blog,学习ajax项目的绝好源码

    - **转发与重定向**:Servlet 可以使用 `RequestDispatcher.forward()` 或 `Response.sendRedirect()` 控制请求流向。 6. **MVC 模式**: - **Model**:代表业务逻辑和数据模型,可能包含 Java Beans 或 POJOs。 ...

    打印报表调用后台servlet出库数据-项目

    在`showReport.jsp`中,开发者可能使用了JSP内置对象(如request、response、session和application)来与Servlet进行通信。可能的情况是,用户在界面上触发某个操作,比如点击“打印报表”按钮,这将触发一个HTTP...

    Shiro权限控制-区分Ajax请求

    protected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception { HttpServletRequest httpRequest = (HttpServletRequest) request; HttpServletResponse httpResponse...

    jsp论坛开发

    了解Servlet的生命周期、init、service、destroy方法以及如何在JSP和Servlet之间进行请求转发和重定向至关重要。 3. **MVC模式**:在论坛开发中,通常采用Model-View-Controller(模型-视图-控制器)架构。Model...

    jsp经典案例

    JSP提供了九个内置对象,如request、response、session、application等。例如,`request.getParameter("username")`获取HTTP请求参数。 **7. JSP标签库** JSTL(JavaServer Pages Standard Tag Library)是标准标签...

    关于实现简单的增删改查

    在这个项目中,"servletCRUD"可能包含了实现上述CRUD操作的Servlet类和相关的HTML表单、JSP页面等资源。通过分析这些文件,你可以更深入地理解Servlet如何处理HTTP请求以及如何在实际应用中实现CRUD操作。同时,也...

Global site tag (gtag.js) - Google Analytics