servlet参数传递(服务端)

本文介绍了一种解决Web登录界面中文乱码的方法,通过设置HTML文档编码为UTF-8,并在Servlet中设置响应内容类型,确保了中文字符正确显示。同时提供了额外的配置建议以应对复杂的编码转换场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以登录界面为例:为了统一代码,将HTML格式改为utf-8

<span style="font-size:14px;"><html>
	<head>

	<title>登录界面</title>
	<meta http-equiv="content-type" content="text/html; charset=utf-8">     
	</head>
	<body align="center">
		<form name="input" action="./text" method="get">     <!-- action为虚拟目录调用跳转出此界面时路径,method访问方式 -->
			用户名: 
			<input type="text" name="name">
	<br>
	<br>
			密	码: 
			<input type="password" name="password">
		<br>
		<br>		
			<input type="submit" value="登录">
</form>	
	</body>
</html></span>

<span style="font-size:14px;">public class WebTest extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		resp.setContentType("text/html;charset=UTF-8");   //防止中文输出乱码问题(输出)
		
		String userName = req.getParameter("name");
		String passWord = req.getParameter("password");           //获取传递值
		
		System.out.println("userName :"+userName);       //在doc命令中打印
		
		
		PrintWriter writer = resp.getWriter();
		if (userName.equals("123")&&passWord.equals("123")) {
			writer.print("<h1>"+userName+"登录成功"+"</h1>");
		}else {
			writer.print("<h1>"+userName+"登录失败"+"</h1>");
		}
		
//		writer.print("登录成功");
	}
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)       //当方法method改为post时调用
			throws ServletException, IOException {
		doGet(req, resp);
	}
}</span>
这样统一编码后我的乱码问题就解决了,但是如果获取值时还存在乱码问题,可以试一下下面两种方法:

1、在tomcat的conf中的server.xml中添加上如下代码:

2、在servlet中加上String user = new String(userName.getBytes("ISO-8859-1"), "UTF-8");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值