14SpringMvc_在业务控制方法中写入HttpServletRequest,HttpServletResponse等传统web参数(这个知识点知道就好了,不推荐这么去做)

这篇文章解决的问题是怎么在业务方法里面引入我们熟悉的HttpServletRequest和HttpServletRespon?

答案:这种引入传统的web参数的做法不推荐去做,因为这么做会实行高度耦合。

但还是说一下这种做法:

在Action修改代码如下:

package com.guigu.shen.Action7;

import java.io.IOException;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/**
 *
 *
请求路径可以拆分为:根模块的名字+分模块的名字
就是相当于当访问http://127.0.0.1:8080:项目名/user/register时就会进入到
registerMethod方法。

 */
@Controller
@RequestMapping(value="/user")//根模块的请求名字
public class UserAction {
    /*
     * 员工注册
     *
     */
@RequestMapping(method=RequestMethod.POST,value="/register")//分模块的请求名字

public String registerMethod(HttpServletRequest httpServletRequest,HttpServletResponse httpServletResponse)
{/*

通过HttpServletRequest和HttpServletRespon得到数据。
*/

    String username=httpServletRequest.getParameter("username");
    String salery=httpServletRequest.getParameter("salary");
     //保存到Session会话级别
    httpServletRequest.getSession().setAttribute("username", username);
    httpServletRequest.getSession().setAttribute("salary", salery);
//重定向
  try {
    httpServletResponse.sendRedirect(httpServletRequest.getContextPath()+"/jsp/success.jsp");

  System.out.println("l路径是"+httpServletRequest.getContextPath());
  } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
  return null;

}

}

success.jsp代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP ‘index.jsp‘ starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>

  <body>
    Success. <br>
 <%--   输出上一个页面输入的值 --%>
    ${username}
    ${salary}   

  </body>
</html>

结果如下:

Success.

aaa
1000

时间: 2024-10-09 09:39:44

14SpringMvc_在业务控制方法中写入HttpServletRequest,HttpServletResponse等传统web参数(这个知识点知道就好了,不推荐这么去做)的相关文章

在业务控制方法中写入Request,Response等传统web参数

可以在业务控制方法中书写传统web参数,这种方式我们不提倡,耦合了 @Controller @RequestMapping(value="/user") public class UserAction{ @RequestMapping(value="/add",method=RequestMethod.POST) public void add(HttpServletRequest request,HttpServletResponse response) thro

在业务控制方法中写入包装User的模型来收集参数

可以在业务控制方法中书写0个或多个模型来收集客户端的参数 1)  如果多个模型中有相同的属性时,可以用user.name或admin.name来收集客户端参数 2)  用一个新的模型将User和Admin再封装一次 public class User { private Integer id; private String name; private Double sal; private Date hiredate; public User(){} public Integer getId()

在业务控制方法中写入User,Admin多个模型收集参数

1)  可以在业务控制方法中书写1个模型来收集客户端的参数 2)  模型中的属性名必须和客户端参数名一一对应 3)  这里说的模型不是Model对象,Model是向视图中封装的数据 @Controller @RequestMapping(value = "/user") public class UserAction { @InitBinder protected void initBinder(HttpServletRequest request,ServletRequestData

17SpringMvc_在业务控制方法中写入包装User的模型来收集参数——解决问题

前一篇文章,讲了在业务方法中多个模型收集参数有一个问题,现在这篇文章就来解决一上一篇文章的问题. User和Admin是两个不同的实体类.我们解决问题的方法是: 如果多个模型中有相同的属性时,可以用user.name或admin.name来收集客户端参数.就是用一个新的模型将User和Admin再封装一次. 给出案例的结构图: 上面结构图中用到了Admin.java;Bean.java;UserAction.java;springmvc_008.xml;spring.xml;web.xml;pe

16SpringMvc_在业务控制方法中写入User,Admin多个模型收集参数——引出问题

上面文章时普通的业务那个方法中收集一个实体类,这篇文章想收集两个实体类. 文本要做的是:在person.jsp页面上,有两个表单.分别是普通用户和管理员用户的表单(普通用户的表单和管理员用户的表单里面的标签的name都是一样的).当输入一些数据之后按提交,不管是普通用户的表单还是管理员用户的表单都会提交到后台的同一个Action(控制器)的同一个方法去处理.然后由这个方法里面的两个实体类参数去收集数据,然后Action处理好之后再回到person.jsp把收集到的数据再显示到这个页面上.pers

12SpringMvc_在业务控制方法中写入普通变量收集参数

这篇文章讲的是jsp页面不是会传一些参数到Action中,那么Action怎么去接受这个数据呢? 方案: 案例结构如下: 用的还是前一篇博客的案例,只是在上面做一些改动:这个案例用到的文件有:1.UserActio.java(控制类)2.Spring.xml(总的配置文件)3.springmvc_006.xml(这个项目独有的配置文件)4.adduser.jsp(有两个表单的jsp页面) 第一步:编写web.xml文件. <?xml version="1.0" encoding=

19SpringMvc_在业务控制方法中收集List集合中包含JavaBean参数

本文要实现的功能是给一张表单: 可以看到这样表格一共有四行,每一行代表一个员工(User),每一个员工有username和salary.我们要做的是把这四个员工信息装进一个List集合中. 那么怎么做呢? List不就是一个数组吗? 我们这么考虑: 案例结构如下: 第一步编写首页面emp.jsp,代码如下: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%

在业务控制方法中收集数组参数

@Controller @RequestMapping(value="/user") public class UserAction { @RequestMapping(value="/delete") public String deleteMethod(int[] ids,Model model) throws Exception{ System.out.println("UserAction::deleteMethod()"); Syste

在业务控制方法中收集List&lt;JavaBean&gt;参数

@Controller @RequestMapping(value="/user") public class UserAction { @RequestMapping(value="/addAll") public String addAll(Bean bean,Model model) throws Exception{ for(User user : bean.getUserList()){ System.out.println(user.getName()+