servlet jsp jdbc实验Word格式.docx
《servlet jsp jdbc实验Word格式.docx》由会员分享,可在线阅读,更多相关《servlet jsp jdbc实验Word格式.docx(29页珍藏版)》请在冰豆网上搜索。
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
publicfinalclassconnectionFactory{
privatestaticStringurl="
jdbc:
mysql:
//127.0.0.1/jdbc"
;
privatestaticStringuser="
root"
privatestaticStringpassword="
123"
privateconnectionFactory(){
}
static{
try{
Class.forName("
org.gjt.mm.mysql.Driver"
);
}catch(ClassNotFoundExceptione){
thrownewExceptionInInitializerError(e);
}
publicstaticConnectiongetConnection()throwsSQLException{
Connectionconn=DriverManager.getConnection(url,user,password);
conn.setAutoCommit(false);
returnconn;
//returnDriverManager.getConnection(url,user,password);
publicstaticvoidfree(ResultSetrs,Statementst,Connectionconn){
if(rs!
=null)
rs.close();
}catch(SQLExceptione){
e.printStackTrace();
}finally{
try{
if(st!
st.close();
}catch(SQLExceptione){
e.printStackTrace();
}finally{
try{
if(conn!
conn.close();
}catch(SQLExceptione){
e.printStackTrace();
}
}
}
输出对象:
publicclassconnectionTest{
publicstaticvoidmain(String[]args)throwsSQLException{
//TODOAuto-generatedmethodstub
Connectionconn=null;
conn=connectionFactory.getConnection();
System.out.println(conn);
conn.close();
//TODOAuto-generatedcatchblock
2、请将成绩表中所有学号是’B030110’的成绩加10分
staticvoidupdate()throwsSQLException{
Statementst=null;
ResultSetrs=null;
//建立连接
conn=connectionFactory.getConnection();
//创建语句
st=conn.createStatement();
Stringsql="
update成绩表setscore=score+10whereid=B030110"
//执行语句
st.executeUpdate(sql);
}finally{
connectionFactory.free(rs,st,conn);
3、总结创建一个基本的JDBC应用的过程
1、先在数据库的建立连接,并建立你所需要的数据。
2、通过JDBC连接数据库,并导入相应的connectionjar包。
3、配置所需文件,建立连接对象,释放对象。
4、完成对数据库的操作。
二、
1、请通过preparedstatement在学生表中输入两个学生信息
packagecn.itcast.jdbc.student.Impl;
importjava.sql.PreparedStatement;
importcn.itcast.jdbc.connectionFactory;
importcn.itcast.jdbc.dao.DaoException;
importcn.itcast.jdbc.student.student;
importcn.itcast.jdbc.student.studentDao;
publicclassstudentDaoImplimplementsstudentDao{
@Override
publicvoidupdate(studentstu){
studentstu1=newstudent();
studentstu2=newstudent();
PreparedStatementps=null,ps1=null;
insertinto学生表(sno,sname,sex)values(?
?
)"
ps=conn.prepareStatement(sql);
ps1=conn.prepareStatement(sql);
ps.setInt(1,stu1.getSno());
ps.setString(2,stu1.getSname());
ps.setString(3,stu1.getSex());
ps.executeUpdate();
ps1.setInt(1,stu2.getSno());
ps1.setString(2,stu2.getSname());
ps1.setString(3,stu2.getSex());
ps1.executeUpdate();
mit();
}catch(SQLExceptione){
thrownewDaoException(e.getMessage(),e);
//e.printStackTrace();
connectionFactory.free(rs,ps,conn);
2、请显示学生表中所有学生的信息
staticvoidread()throwsSQLException{
rs=st.executeQuery("
select*from学生表"
while(rs.next()){
System.out.println(rs.getObject("
sno"
)+"
\t"
+rs.getObject("
sname"
sex"
三、
1、请实现一个接口dealDao的实现类dealDaoImpl
该接口定义如下:
interfacedealDao{
Booleanfind(useruser)//查找指定的用户是否存在
Booleansave(useruser)//保存指定的用户信息
IntgetSum(useruser)//得到某人账户中的资金
Booleanchange(useruser,intsum)//给user转指定的钱
User类{Stringname;
//账户名
Stringpwd;
//密码
intmoney;
//金额
账户表(账户名char(10),密码varchar(20),金额int)
packagecn.itcast.jdbc.user.impl;
importcn.itcast.jdbc.user.User;
importcn.itcast.jdbc.user.dealDao;
publicclassdealDaoImplimplementsdealDao{
Connectionconn=null;
PreparedStatementps1=null;
PreparedStatementps2=null;
PreparedStatementps3=null;
PreparedStatementps4=null;
ResultSetrs=null;
publicBooleanchange(Useruser,intsum)throwsSQLException{
Stringsql="
update用户表setaccount=account+?
wherename=?
"
if(find(user)==true){
Stringname=user.getName();
ps1=conn.prepareStatement(sql);
ps1.setInt(1,sum);
ps1.setNString(2,name);
returnps1.execute();
elsereturnfalse;
publicBooleanfind(Useruser)throwsSQLException{
select*from用户表wherename=?
Stringname=null;
name=user.getName();
ps2=conn.prepareStatement(sql);
ps2.setNString(1,name);
rs=ps2.executeQuery();
if(rs.next()==true)
returntrue;
else
returnfalse;
publicintgetSum(Useruser)throwsSQLException{
intaccount;
ps3=conn.prepareStatement(sql);
ps3.setNString(1,user.getName());
rs=ps3.executeQuery();
rs.next();
account=rs.getInt(3);
returnaccount;
elsereturn-1;
publicBooleansave(Useruser)throwsSQLException{
insertinto用户表values(?
Stringname=null,password=null;
intaccount;
ps4=conn.prepareStatement(sql);
password=user.getName();
account=user.getMoney();
ps4.setNString(1,name);
ps4.setNString(2,password);
ps4.setInt(3,account);
ps4.execute();
returntrue;
实验报告(三)
Servlet应用
1、掌握servlet的配置方法
2、掌握web服务器的配置过程
3、掌握HttpServlet类的用法
4、掌握session等对象的用法
5、掌握请求转发功能的应用
6、掌握SerlvetConfig上下文的用法
Servlet配置、servlet设计、会话管理、请求流转、上下文应用
1、请建立一个servlet类用于显示当前的系统时间。
写出它的url配置写法
package.servlet;
importjava.io.IOException;
importjava.io.PrintWriter;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
publicclassDateextendsHttpServlet{
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
this.doPost(request,response);
publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
response.setContentType("
text/html"
PrintWriterout=response.getWriter();
out.println("
<
!
DOCTYPEHTMLPUBLIC\"
-//W3C//DTDHTML4.01Transitional//EN\"
>
HTML>
<
HEAD>
TITLE>
AServlet<
/TITLE>
/HEAD>
BODY>
out.print(newjava.util.Date());
/BODY>
/HTML>
out.flush();
out.close();
}}
servlet>
servlet-name>
Date<
/servlet-name>
servlet-class>
.servlet.Date<
/servlet-class>
/servlet>
servlet-mapping>
url-pattern>
/servlet/Date<
/url-pattern>
/servlet-mapping>
1、请输入用户名和密码,如果用户名和密码是“zhangsan”和”123456”,则进入一个欢迎界面,否则要求用户重新输入。
涉及的方法:
(1)response.sendRedirect("
login.htm"
(2)request.getRequestDispatcher("
welcome.htm"
).forward(request,response);
(3)HttpSessionsession=request.getSession();
session.setAttribute("
islogin"
true);
(4)booleanisLogin=session.getAttribute("
%@pagelanguage="
java"
import="
java.util.*"
pageEncoding="
UTF-8"
%>
%
Stringpath=request.getContextPath();
StringbasePath=request.getScheme()+"
:
//"
+request.getServerName()+"
+request.getServerPort()+path+"
/"
DOCTYPEHTMLPUBLIC"
-//W3C//DTDHTML4.01Transitional//EN"
html>
head>
basehref="
%=basePath%>
title>
MyJSP'
submit.jsp'
startingpage<
/title>
/head>
body>
%request.setCharacterEncoding("
response.setCharacterEncoding("
utf-8"
Stringname=request.getParameter("
name"
Stringpwd=request.getParameter("
passwrd"
//PrintWriterout=response.getWriter();
if("
张三"
.equals(name)&
&
123456"
.equals(pwd)){
%>
HttpSessionsession=request.getSession();
session.setAttribute("
request.getRequestDispatcher("
welcome.jsp"
<
%}else{%>
response.sendRedirect("
%}%>
/body>
/html>
2、领会多用户并发访问的机制,请建立一个HttpServlet——“servletUsers”类,在该类的成员代码如下:
publicclassserveltUsersextendsHttpServlet{
privateIntegerx=1;
publicvoiddoGet(HttpServletRequestrequest,HttpSe