在本次实验平台为myeclipse10,tomcat7.0.
问题一:表单提交后,服务器返回404.
<form action="">中action表示事件发生时处理该表单的servlet所在的位置,即url。这个url配置在web.xml中。
解决这个问题,需要明白,web.xml中基本参数的意义:
<servlet-name>simple</servlet-name>//自定义的servlet应用名字,不要求与需要调用的servlet同名
<servlet-class>cn.mldn.lxh.servlet.SimpleServlet</servlet-class> //我们定义的servlet应用名字对应的具体servlet文件
< servlet-mapping> //地址映射
<servlet-name>simple</servlet-name> //我们定义的servlet应用名字,,要求与上述提到的<servlet-name>同名
<url-pattern>/demo</url-pattern> //地址名 </servlet-mapping>
进行地址映射目的是为了使用servlet,它的工作过程是:
工作过程:
输入地址:http://localhost:8080/ demo,通过它找到映射文件内部的文件名simple,通过simple找到对应的<servlet-name>simple</servlet-name>,然后定位到这个servlet 文件:cn.mldn.lxh.servlet.SimpleServlet
解决方案:action映射到
问题二:中文乱码
原因:web服务器和浏览器http协议通信时,默认使用ISO-8859-1字符集进行编码。
解决方案:对response和request进行编码。
代码:
*******************************************************start************************************************************************
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Test extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//request.setCharacterEncoding("UTF-8");
String name = request.getParameter("mz");
name = new String(name.getBytes("ISO-8859-1"),"UTF-8");
String SuccessInfo = "Congratulate 恭喜" + name;
response.setContentType("text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>");
out.println("SuccessPage");
out.println("</title>");
out.println("</head>");
out.println("<body>");
out.println(SuccessInfo);
out.println("</body>");
out.println("</html>");
out.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
********************************************************index.jsp***************************************************************
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>
TestMy_Servlet
</title>
</head>
<body>
<form action="TestIt" method="post">
input your name:<input type="text" name="mz" value="请输入您的姓名"><p>
<input type="submit" value="提交">
<input type="reset" value="重置">
</form>
</body>
</html>
*******************************************************web.xml*******************************************************************
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>Test</servlet-name>
<servlet-class>Test</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/TestIt</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
*************************************************end**********************************************
项目结构:
运行结果: