MyFirstJsp&Servlet表单提交之问题记录与总结

在本次实验平台为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**********************************************

项目结构:

运行结果:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值