jsp中request.getParameter(“xxx”);方法将失效 &两种Date之间的转换

jsp中request.getParameter(“xxx”);方法将失效 &两种Date之间的转换

(1)处理请求和响应的字符编码

request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");

(2)获取表单提交的数据容易出现的问题

如果你的form表单不涉及文件上传(图片、txt…),那么写enctype="multipart/form-data"是会容易导致出现错误的:当你的表单中有enctype="multipart/form-data"属性的时候,你的request.getParameter(“xxx”);方法将失效,所以会出现获取不到表单数据的现象。解决方法如下:

  • 如果你的表单不涉及文件上传的话,那么你完全可以删除这个属性,这样request.getParameter(“xxx”);方法就可以使用了。
  • 如果前端form表单有enctype=“multipart/form-data”,可以在类上加入注解@MultipartConfig,这样就可以使用request.getParameter(“xxx”); 获取表单数据了
       import java.io.IOException;
       import java.util.List;
       import javax.servlet.ServletException;
       import javax.servlet.annotation.WebServlet;
       import javax.servlet.http.HttpServlet;
       import javax.servlet.http.HttpServletRequest;
       import javax.servlet.http.HttpServletResponse;
       
       import com.sujie.entity.Student;
       import com.sujie.service.StudentService;
       import com.sujie.service.impl.StudentServiceImpl;

       	 @MultipartConfig
         @WebServlet("/stuList.do")
         public class StudentListServlet extends HttpServlet {
        	 private static final long serialVersionUID = 1L;
       
             public StudentListServlet() {
               super();
             }
             ......
         }

(3)转发和重定向

//将信息存到session域中
request.getSession().setAttribute("error", "用户名或密码输入错误!");
//转发
request.getRequestDispatcher("/stuList.jsp").forward(request, response);
//重定向
response.sendRedirect(request.getContextPath()+"/login.jsp");

(4)两种Date之间的转换(java.util.Date 与 java.sql.Date;)

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//处理请求和响应的字符编码
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");

		//设置date接收格式
		DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); 
		//获取前端form表单数据
		int id = Integer.parseInt(request.getParameter("id"));
		String carNum = request.getParameter("carNum");
		int carSize = Integer.parseInt(request.getParameter("carSize"));
		String driver = request.getParameter("driver");
		
		//声明两个日期
		Date carFactoryDate = null;
		Date carCheckDate = null;
		try {//将前台传来的数据按指定格式接收,转换成Date
			carFactoryDate =format.parse( request.getParameter("carFactoryDate"));
			carCheckDate = format.parse( request.getParameter("carCheckDate"));
		} catch (ParseException e) {
			e.printStackTrace();
		}

		String carBrand = request.getParameter("carBrand");
		int carDestroy = Integer.parseInt(request.getParameter("carDestroy"));
		int deFlag = 0;

		//因为需要和数据库交互,所以Entity层Car.java中的和时间有关的属性,是用的java.sql.Date包中的 		 //Date,所以要把这里的Date转成指定类型,这就用到了Date自带的getTime()方法
		//即:使用java.sql.Date(carFactoryDate.getTime())可将当前java.util.Date转成   			//java.sql.Date
		Car car = new Car(id, carNum, carSize, driver, new java.sql.Date(carFactoryDate.getTime()), new java.sql.Date(carCheckDate.getTime()),carBrand, carDestroy, deFlag);

		//处理相关数据
		CarService carService = new CarServiceImpl();
		int updateAdminMSG = carService.updateCarMSG(car);
		if(updateAdminMSG >0) {
			request.getRequestDispatcher("/carList.do").forward(request, response);
		}
	}

(5)四大作用域

  • application作用域:它的有效范围是整个应用,指从应用启动到应用结束。

  • session作用域:有效范围是当前会话,指冲用户打开浏览器开始到用户关闭浏览器。

  • Request作用域:变量可以跨越forword前后的两页,但是刷新页面就需要重新计算了。

  • page作用域:作用范围仅限于用户请求的当前页面。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值