jsp与servlet 实现 简单的用户信息传递

本文详细介绍了如何从JSP页面通过表单POST方法向Servlet传递数据,并在Servlet中接收并处理这些数据,最终利用EL表达式在另一个JSP页面显示。过程中提到了可能出现的乱码问题及解决方案,即在Servlet中设置请求的字符编码。
摘要由CSDN通过智能技术生成

闲话少说,开始正题。

简单项目结构如图:

JSP到Servlet示例:JSP的form表单传值。

我们需要实现的是:当用户点击“新增”按钮之后,将写入的数据,传递到另一个页面。

1 .首先我们需要做一个简单的add.jsp页面。在body里写form表单。

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="${ctx}/Servlet/UserServlet"   method="post">
姓名:<input type="text"   name="username"   id="username"      class="username">

 密码:<input  type="text"    name="password"   id="password"   class="password">

<input  type="submit"   value="新增">
</form>


</body>
</html>

效果如下:

看这里,action无需赘述,也就是请求路径。这里注明了方法是“post”。这是两个关键点。

 

2.servlet代码示例,下面就是通过servlet来接收JSP传过来的数据。

package com.test;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/UserServlet")
public class UserServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 通过request.getParamter(参数)方法来获取

		// 参数为JSP form表单所对应的name值

		String username = request.getParameter("username");

		String password = request.getParameter("password");
		System.out.println("输入的用户名:" + username + ",输入的密码:" + password);

		// 通过request.setAttribute(参数,值)方法设置

		request.setAttribute("username", username);

		request.setAttribute("password", password);

		// 通过request.getRequestDispatcher("路径").forward(request,
		// response)方法来把设置好的参数传到jsp去

		request.getRequestDispatcher("MyJsp.jsp").forward(request, response);

	}
}

这里我们运用了dopost方法,因为add页面就是用的post请求。注释@Webservlet("/UserServlet")

写一个跳转的页面MyJsp.jsp 来用 EL表达式接收 过来的值。

el表达式就是“${}”这样子,里面写对应的 参数就行。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
${username} <br>

${password}
</body>
</html>

页面输入:

 

点击“新增”;

这里看到我输入的汉字出现了乱码。这也是一个需要注意的地方,这个时候我们就需要在servlet里面设置

request.setCharacterEncoding("UTF-8");

来设置一下请求的字符编码。页面的不需要设置,因为在页面上已经设置过了。

就是这段、

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

如果不放心,就再加一个:response.setContentType("text/html; charset=UTF-8");

 

最后的结果:

好了,简单的传值就这样,理解了吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值