一小问题!但很长!代码也违反了MVC 但..
我有个html页面如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN " "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns= "http://www.w3.org/1999/xhtml ">
<head>
<meta http-equiv= "Content-Type " content= "text/html; charset=gb2312 " />
<title> 无标题文档 </title>
</head>
<body>
<form id= "form1 " name= "form1 " method= "post " action= "dcservlet.java ">
<p> 软件插入数据库 </p>
<p> 姓 名:
<input type= "text " name= "name " />
</p>
<p> 密 码:
<input type= "text " name= "password " />
</p>
<p> 地 址:
<input type= "text " name= "address " />
</p>
<p> 联系电话:
<input type= "text " name= "tel " />
</p>
<p> </p>
<p>
<input type= "submit " name= "Submit " value= "提交 " />
<input type= "reset " name= "Submit2 " value= "重置 " />
</p>
</form>
</body>
</html>
把这个值传递给一个servlet 如下
package model;
import java.io.*;
import javax.servlet.http.*;
import java.util.*;
import java.sql.*;
import javax.servlet.*;
public class dcservlet extends HttpServlet {
private static final String CONTENT_TYPE= "text/html;charset=GBK ";
private String comeOutStr= " ";
private int comeOutInt=0;
private static Connection con;
private Statement stmt;
private static final String drivername= "org.gjt.mm.mysql Driver ";
private static final String url= "jdbc:mysql://localhost/zqswork02?user=root&password=root&useUnicode=true&characterEncoding=gb2312 ";
public static Connection getCon() throws Exception {
try {
Class.forName(drivername);
con=DriverManager.getConnection(url);
return con;
} catch (SQLException e) {
System.err.println(e.getMessage());
throw e;
}
}
public Statement getStmtread() {
try {
con=getCon();
stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
return stmt;
} catch (Exception e) {
System.err.println(e.getMessage());
e.printStackTrace();
}
return null;
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
out.println( " <!DOCTYPE HTML PUBLIC \ "-//W3C//DTD HTML 4.01 Transitional//EN\ "> ");
out.println( " <HTML> ");
out.println( " <HEAD> <TITLE> A Servlet </TITLE> </HEAD> ");
out.println( " <BODY> ");
out.print( " This is ");
String name=toStr((String)request.getParameter( "name "));
String password=toStr((String)request.getParameter( "paswword "));
String address=toStr((String)request.getParameter( "address "));
int tel=toInt((String)request.getParameter( "tel "));
String sql= "insert into zqsworktable2(name,password,address,tel)values( ' "+toChinese(name)+ " ', ' "+toChinese(password)+ " ', ' "+toChinese(address)+ " ', ' "+tel+ " ') ";
try {
stmt=getStmtread();
int i=stmt.executeUpdate(sql);
if (i> 0) {
out.println( "使用servlet更新成功 ");
}
} catch (Exception e) {
}
out.println( " </BODY> </html> ");
}
public String toStr(String comelnStr){
if(comelnStr==null||comelnStr.equals( " ")){
return comeOutStr= "no ";
}else{
return comeOutStr.trim();
}
}
public int toInt(String comeInInt){
try {
comeOutInt=Integer.parseInt(comeInInt);
} catch (Exception e) {
comeOutInt=0;
}
return comeOutInt;
}
public String toChinese(String str){
try {
str=(new String(str.getBytes( "iso-8859-1 "), "GB2312 "));
} catch (Exception e) {
return str;
}
return str;
}
}
其中我的web.xml如下:
<?xml version= "1.0 " encoding= "UTF-8 "?>
<web-app version= "2.4 "
xmlns= "http://java.sun.com/xml/ns/j2ee "
xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance "
xsi:schemaLocation= "http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd ">
<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> dcservlet </servlet-name>
<servlet-class> dcservlet </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name> dcservlet </servlet-name>
<url-pattern> /servlet/dcservlet </url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>
dcservelt.html
</welcome-file>
</welcome-file-list>
</web-app>
最后一点提交就出现404错误 我想这个东西肯定不是很复杂但我错了能帮我好好看看吗?
[解决办法]
<form id= "form1 " name= "form1 " method= "post " action= "serlet/dcservlet ">
[解决办法]
兄弟,你要知道web.xml中配置的意思:
<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> dcservlet </servlet-name> //servlet的名字,随便取
<servlet-class> dcservlet </servlet-class> //类的位置,要把包的路径都写进去
</servlet>
<servlet-mapping>
<servlet-name> dcservlet </servlet-name> //对应上面的servlet-name
<url-pattern> /servlet/dcservlet </url-pattern> //判断页面调用的servlet
</servlet-mapping>
你这个页面和web.xml里的明显没对应起来,找不到servlet。
改成:action= "servlet/dcservlet "
[解决办法]
html里出错了
<form id= "form1 " name= "form1 " method= "post " action= "dcservlet.java ">
action应该改成:
<url-pattern> /servlet/dcservlet </url-pattern> 中配置的地址
<form id= "form1 " name= "form1 " method= "post " action= "***** ">
***处的地址要指向/servlet/dcservlet
[解决办法]
把这个值传递给一个servlet 如下
package model;
import java.io.*;
import javax.servlet.http.*;
import java.util.*;
import java.sql.*;
import javax.servlet.*;
==================================、
你的这个Servlet上的包名是model啊,到底是 test 还是model????
另外HTTP Status 404 - /zqswork02/dcservlet.java这个错误提示中zqswork02是你建的工程么?
[解决办法]
action 路径写错了