MyFirstJsp&Servlet表单提交之问题记录与总结
2014-05-21 20:44
519 查看
在本次实验平台为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**********************************************
项目结构:
运行结果:
问题一:表单提交后,服务器返回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**********************************************
项目结构:
运行结果:
相关文章推荐
- 关于jsp表单提交中action所指向Servlet路径问题的总结
- 软件工程课程设计问题总结——医院门诊系统(二):jsp中验证码的实现&设置验证失败不提交表单
- 关于jsp表单提交中action所指向Servlet路径问题的总结
- JSP提交表单给Servlet路径问题
- JSP提交表单给Servlet路径问题
- jsp页面中的汉字问题和表单提交汉字问题(***.getBytes("ISO-8859-1")行报错)
- Head First Servlets & JSP 中的问题(前100页)
- JSP+Servlet学习经验1:解决form表单提交后相应页面中文乱码的问题
- jsp servlet 中 表单提交路径, RequestDispacher 路径,sendRedirect 路径的相关问题汇总
- My first thought of reading this book-《Head First sServlets & JSP》
- JSP提交表单给Servlet路径问题
- struts中form表单提交给Servlet中文乱码问题
- 总结:FORM中使用onSubmit="return false"防止表单自动提交,以及submit和button提交表单的区别
- JSP+JavaBean不能使用jsp:setProperty name="BeanName" property="*"/>来自动提交日期表单
- 问题++:jsp空白页及表单提交两次的问题
- struts2/jsp 通过form表单方式或者js的方式提交请求,封装boolean值的问题
- servlet 表单提交问题
- 问题解决:javax.servlet.jsp.el.ELException: The "." operator was supplied with an index value of type "java.lang.String" to be applie
- Head First Servlets&Jsp 读书摘记2——【作为Servlet】
- JSP中表单提交的一个小问题