流程为:浏览器输入,调用1.jsp 1.jsp调用proBean.class的方法完成插入数据库操作
useBean 就相当于c++的类!
写一个proBean.java 内容为:
package packet;
import java.io.*;
import javax.servlet.*;
import javax.servlet.jsp.*;
import java.sql.*;
public class proBean
{
//定义内部使用的相应对象变量
String ID ;
String gridno ;
String type ;
String x ;
String y ;
String name ;
String dbName;
String tableName;
String m_URL;
String userName;
String userPasswd;
Connection Con;
Statement Stat;
ServletRequest req;
ServletResponse res;
ServletOutputStream out;
public proBean() {}
public void init(ServletRequest request,ServletResponse response)
{
/*try
{
out=res.getOutputStream();
}
catch(IOException e)
{
System.out.println("getOutputStream Error:"+e.getMessage());
}
*/
try
{
req=request;
res=response;
dbName="test"; //数据库名字
tableName="point"; //表
userName="root";
userPasswd="cnk8";
m_URL="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;
Class.forName("com.mysql.jdbc.Driver").newInstance();
Con=DriverManager.getConnection(m_URL);
Stat = Con.createStatement();
ID = req.getParameter("ID");
gridno = req.getParameter("gridno");
type = req.getParameter("type");
x = req.getParameter("x");
y = req.getParameter("y");
name = req.getParameter("name");
}
catch(Exception e)
{
System.out.println("getOutputStream Error:"+e.getMessage());
}
}
public void execute()
{
try{
Stat.executeUpdate("insert into point(ID,gridno,type,x,y,name) values('"+ID+"','"+gridno+"','"+type+"','"+x+"','"+y+"','"+name+"')");
}
catch(SQLException e)
{
System.out.println("getOutputStream Error:"+e.getMessage());
}
}
public void clean()
{
req=null;
res=null;
try{
// rs.close();
Stat.close();
Con.close();
}
catch(SQLException e)
{System.out.println("getOutputStream Error:"+e.getMessage());}
}
}
好了现在把这个源文件编译一下用: javac proBean.java
就可以得到proBean.class 这个二进制执行文件了。(jsp文件调用的是这个.class)
注意:修改了web.xml以及新加了class,都要重启Tomcat
程序不用看了!其实就相当于C++的一个类,有三个方法init(),execute(),clean()
。注意几点就行:
1:package packet; 这是设置一个package包 如果不加会错!proBean.java 放到
.. "Tomcat 6.0"webapps"ROOT"WEB-INF"classes"packet 里面!"packet该目录就是包名字。
2:用cmd到该目录 运行 javac proBean.java 会生成proBean.class 这就是等会1.jsp要用的类了!当然先要加入环境变量,否则编译不通过,因为找不到import javax.servlet.*;
import javax.servlet.jsp.*;
import java.sql.*;
等库文件.
环境变量这样设置:
CLASSPATH
.; //表示当前目录
E:"Program Files"Tomcat 6.0"lib"servlet-api.jar;
E:"Program Files"Tomcat 6.0"lib"jsp-api.jar;
E:"Program Files"Tomcat 6.0"lib;
E:"Program Files"Java"jdk1.6.0_12"lib"dt.jar;
E:"Program Files"Java"jdk1.6.0_12"lib"tools.jar;
E:"Program Files"Java"jdk1.6.0_12"jre"lib"rt.jar
PATH
E:"Program Files"Java"jdk1.6.0_12"bin;
E:"Program Files"Apache2"mysql"bin
%SystemRoot%"system32;
%SystemRoot%;
%SystemRoot%"System32"Wbem;
C:"Program Files"Microsoft SQL Server"90"Tools"binn";
C:"Program Files"TortoiseSVN"bin;
JAVA_HOME
E:"Program Files"Java"jdk1.6.0_12
TOMCAT_HOME
E:"Program Files"Tomcat 6.0
3:嗯。。?,还要说一下在linux里面的配置方法,其他都一样,什么mysql-connector.jar放到tomcat/lib里面啊等,关键就是把环境变量加到 /etc/profile 里面具体如下
关闭防火墙 service iptables stop 开启tomcat ./startup.sh ,没什么其他问题了!go
再写一个1.jsp ,内容为:
<%@include file ="head.jsp" %>
<jsp:useBean id="inserpro" scope="page" class="packet.proBean" />
<%
try
{
inserpro.init(request,response);
inserpro.execute();
inserpro.clean();
}
catch(Exception ex)
{
response.sendError(500,"sorry,some wrong happend");
out.println(ex.getMessage());
}
%>
<jsp:forward page = "done.jsp">
<jsp:param name="p" value = "ok"/>
</jsp:forward>
注意3点:
1:<jsp:useBean id="inserpro" scope="page" class="packet.proBean" />
Packet就是上面proBean.java 里设置的packet包。
2:%@include file ="head.jsp" % head.jsp 和 1.jsp都在"Tomcat 6.0"webapps"ROOT这个目录下。 Head.jsp 就是个头文件里面是初始化,具体内容为:
<%@ page contentType="text/html; charset=gb2312" %>
<%@ page language="java" %>
<%@ page import="com.mysql.jdbc.Driver" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.Enumeration"%>
<%@ page import="java.util.*" %>
<%@ page errorPage="error.jsp" %>
<%@ page session="true" %>
<%! String driverName="com.mysql.jdbc.Driver";%>
内容也很简单,没什么说的就是注意<%@ page errorPage="error.jsp" %>
错误了就自动跳转到error.jsp
3:最后的jsp:forward 表示运行到这里就跳转到done.jsp(这里面就是个输出!OK) 并且传一个参数p=ok过去
注意文件组织结构图:
这些在ROOT下面。
OK了,就这些文件就可以了!在网址处输入http://localhost:8080/jspTEST.jsp?ID=10112301&gridno=1001&type=200&x=1.1&y=1.1&name=text2 就会显示OK 数据库里就插入一条数据了。
用socket调用也是一样,前面有,俺不说了。