JDBC与Servlet实验报告.doc_第1页
JDBC与Servlet实验报告.doc_第2页
JDBC与Servlet实验报告.doc_第3页
JDBC与Servlet实验报告.doc_第4页
JDBC与Servlet实验报告.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验报告(二)院系:信息学院 课程名称:Web数据库技术 日期:班 级姓 名专 业学 号实 验 室实验名称Jdbc应用成 绩 评 定教 师 签 名实验目的1、 掌握数据库驱动的加载方式2、 掌握connection对象的使用方法3、 掌握statement对象使用方法4、 掌握事务的处理机制5、掌握数据持久层的设计实验内容connection对象、statement对象等应用实验过程、结果及分析一、1、 请建立一个与本地mysql服务器的“信息库”的连接对象并输出该连接。public class Factory private static String driver; private static String url; private static String username; private static String password; private static Connection conn; /private static Properties pro; /private static Properties p1; static driver=” org.gjt.mm.mysql.Driver” url=” jdbc:mysql://学生库” username=” root” password=”123” public static Connection getconnection() throws ClassNotFoundException, FileNotFoundException try Class.forName(driver); conn=DriverManager.getConnection(url,username,password); conn.setAutoCommit(false); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); return conn; public static void main(String args) try System.out.println(Factory.getconnection();System.out.println(连接成功!); catch (FileNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (ClassNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace();2, 请将成绩表中所有学号是B030110的成绩加10分Public class addgradePublic static void main(String args)String sql=”update grade set scores=scores+10 where sno=?”Preparedstatement state=null;Connection conn=null;Conn=Factoryconn.getconnection();State=conn. prepareStatement();State.setNString(1,” B030110”);State.excute();Cmit();3,总结创建一个基本的JDBC应用的过程1首先获取到对应数据库的url 例如 mysql的url=“jdbc:mysql://学生库”2,获取对应驱动 例如mysql 的驱动 driver= “org.gjt.mm.mysql.Driver”3 加载驱动:方法- Class.forName(driver); 4 获取连接: Connection conn=DriverManager.getConnection(url,username,password);5其中 username 为用户名 password 为密码实验过程、结果及分析二、1、请通过preparedstatement在学生表中输入两个学生信息 Studente stu=new students(); Students stu1=new students();String sql=insert into 学生表 values(?,?,?);PreparedStatement state=null;Connection con=null;con=Factory.getconnection(); state=con.prepareStatement(sql);state1=con.prepareStatement(sql) state.setObject(1,1); state.setNString(2,stu.getname(); state.setNString(3,stu.getxuehao(); state.executeQuery(); state1.setObject(1,2); state1.setNString(2,stu1.getname(); state1.setNString(3,stu1.getxuehao(); state.executeQuery(); mit();2、请显示学生表中所有学生的信息public class test public static void main(String args) throws ClassNotFoundException, SQLException, FileNotFoundException String sql1=select * from 学生表”; Connection con=null;PreparedStatement state=null;con=Factory.getconnection();state=con.prepareStatement(sql1);ResultSet rs=state.executeQuery(sql1);System.out.print(*);System.out.println();while(rs.next() System.out.print(ID=+rs.getInt(1); System.out.print( ); System.out.print(姓名=+rs.getObject(2).toString(); System.out.print( ); System.out.print(学号=+rs.getObject(3).toString(); System.out.print( ); System.out.println();System.out.print(*); System.out.println(Factory.getproperties().getProperty(table); mit(); con.close(); state.close(); 二、1、请通过preparedstatement在学生表中输入两个学生信息Studente stu=new students(); Students stu1=new students();String sql=insert into 学生表 values(?,?,?);PreparedStatement state=null;Connection con=null;con=Factory.getconnection(); state=con.prepareStatement(sql);state1=con.prepareStatement(sql) state.setObject(1,1); state.setNString(2,stu.getname(); state.setNString(3,stu.getxuehao(); state.executeQuery(); state1.setObject(1,2); state1.setNString(2,stu1.getname(); state1.setNString(3,stu1.getxuehao(); state.executeQuery(); mit();2、请显示学生表中所有学生的信息实验过程、结果及分析三、1、请实现一个接口dealDao的实现类dealDaoImpl该接口定义如下: interface dealDao Boolean find(user user)/查找指定的用户是否存在 Boolean save(user user)/保存指定的用户信息 Int getSum(user user)/得到某人账户中的资金 Boolean change(user user,int sum)/给user转指定的钱User类String name;/账户名 String pwd;/密码 int money;/金额账户表(账户名char(10),密码 varchar(20),金额 int)import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;public class dealDaoImpl implements dealDaoConnection conn;PreparedStatement state=null;PreparedStatement state1=null;PreparedStatement state2=null;PreparedStatement state3=null;ResultSet rs=null;public dealDaoImpl(Connection conn)this.conn=conn; Boolean find(user user) String sql=select * from 用户表 where name=?; String name=null; name=user.getName(); state=conn.prepareStatement(sql); state.setNString(1, name);rs= state.executeQuery();if(rs.next()=true)return true; else return false; Boolean save(user user) String sql=insert into 用户表 values(?,?,?); String name=null,password=null;int account; state=conn.prepareStatement(sql); name=user.getName(); password=user.getName(); account=user.getAccount(); state.setNString(1, name); state.setNString(2, password); state.setInt(3, account); state.execute(); return true; int getSum(user user) String sql=select * from 用户表 where name=?; int account; state2=conn.prepareStatement(sql); if(find(user)=true) state2.setNString(1,user.getName(); rs=state2.executeQuery(); rs.next(); account=rs.getInt(3); return account; else return -1; Boolean change(user user,int sum) String sql=update 用户表 set account=account+? where name=?; if(find(user)=true) String name=user.getName(); state3=conn.prepareStatement(sql); state3.setInt(1, sum); state3.setNString(2, name); return state3.execute();else return false; Boolean save(user user) String sql=insert into 用户表 values(?,?,?); String name=null,password=null;int account; state=conn.prepareStatement(sql); name=user.getName(); password=user.getName(); account=user.getAccount(); state.setNString(1, name); state.setNString(2, password); state.setInt(3, account); state.execute(); return true; int getSum(user user) String sql=select * from 用户表 where name=?; int account; state2=conn.prepareStatement(sql); if(find(user)=true) state2.setNString(1,user.getName(); rs=state2.executeQuery(); rs.next(); account=rs.getInt(3); return account; else return -1; Boolean change(user user,int sum) String sql=update 用户表 set account=account+? where name=?; if(find(user)=true) String name=user.getName(); state3=conn.prepareStatement(sql); state3.setInt(1, sum); state3.setNString(2, name); return state3.execute(); else return false; 实验报告(三)院系:信息学院 课程名称:Web数据库技术 日期:班 级姓 名专 业学 号实 验 室实验名称Servlet应用成 绩 评 定教 师 签 名实验目的1、 掌握servlet的配置方法2、 掌握web服务器的配置过程3、 掌握HttpServlet类的用法4、 掌握session等对象的用法5、 掌握请求转发功能的应用6、掌握SerlvetConfig上下文的用法实验内容Servlet配置、servlet设计、会话管理、请求流转、上下文应用实验过程、结果及分析一、1、 请建立一个servlet类用于显示当前的系统时间。写出它的url配置写法import java.io.IOException;import java.io.PrintWriter;import java.text.SimpleDateFormat;import java.util.Date;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class getdate extends HttpServlet public getdate() super();public void destroy() super.destroy(); / Just puts destroy string in log/ Put your code herepublic void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException this.doPost(request, response);public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException response.setContentType(text/html);String date; Date date1=new Date(); SimpleDateFormat format=new SimpleDateFormat(yyyy-M-dd h:m:s); date=format.format(date1);PrintWriter out = response.getWriter();out.println();out.println();out.println( A Servlet);out.println( );out.print(date);out.println( );out.flush();out.close();public void init() throws ServletException / Put your code hereout.println();out.flush();out.close();public void init() throws ServletException / Put your code here配置方法 This is the description of myJ2EEcomponent This is the display name of my J2EE component getdate getdate getdate /servlet/getdate 二、1、 请输入用户名和密码,如果用户名和密码是“zhangsan”和”123456”,则进入一个欢迎界面,否则要求用户重新输入。涉及的方法:(1)response.sendRedirect(login.htm); (2)request.getRequestDispatcher(welcome.htm).forward(request, response); (3) HttpSession session = request.getSession();session.setAttribute(islogin, true); (4)boolean isLogin=session.getAttribute(islogin); 登录验证 HttpSession session = request.getSession();session.setAttribute(islogin, true);request.getRequestDispatcher(welcome.jsp).forward(request, response); response.sendRedirect(login.htm); 实验过程、结果及分析2、领会多用户并发访问的机制,请建立一个HttpServlet“servletUsers”类,在该类的成员代码如下:public class serveltUsers extends HttpServlet private Integer x=1;public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException this.doPost(request, response);public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException response.setContentType(text/html);response.setCharacterEncoding(utf-8);PrintWriter out = response.getWriter();out.println();out.println();out.println( A Servlet);out.println( );out.println(当前x的值是+x);out.flush();synchronized (x) Thread thread=Thread.currentThread(); try thread.sleep(1000*5); catch (InterruptedException e) / TODO Auto-generated catch blocke.printStackTrace(); x+;out.println(当前serlvet实例阻塞5秒后,当前x的值是+x);out.println( );out.println();out.flush();out.close();请在5秒内用两个浏览器窗口浏览该HttpServlet类,看看效果如何。为什么是这个效果!响应等待几秒钟 后显示X的值为2 首先X是一个全局变量 X的自增语句加锁了 所以会响应等待实验过程、结果及分析三、1、 请设计一种过滤器实现权限控制机制。如果用户进入web应用没有登入时,要求用户必须进入登入页面。package filter.userfilter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class userfilters implements Filterpublic void destroy() public void doFilter(ServletRequest arg0, ServletResponse arg1,FilterChain arg2) throws IOException, ServletException HttpServletRequest request=(HttpServletRequest)arg0;HttpServletResponse response=(HttpServletResponse)arg1;response.setCharacterEncoding(utf-8);request.setCharacterEncoding(utf-8);HttpSession session=request.getSession();String name=(String)session.getAttribute(name);if(name=null)response.sendRedirect(././html/longin.html);elsearg2.doFilter(request, response);public void init(FilterConfig arg0) throws ServletException / TODO Auto-generated method stub2,请设计一种机制进行网站访问者统计(监听器方式实现)package Listeners;import javax.servlet.ServletContext;import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSessionListener;public class listener1 implements HttpSessionListenerpublic void sessionCreated(HttpSessionEvent arg0) ServletContext application=arg0.getSession().getServletContext();int a=(Integer)application.getAttribute(count);a+;application.setAttribute(count,(Integer)a);public void sessionDestroyed(HttpSessionEvent arg0) ServletContext application=arg0.getSession().getServletContext();int a=(Integer)application.getAttribute(count);a-;application.setAttribute(count,(Integer)a);实验报告(四)院系:信息学院 课程名称:Web数据库技术 日期:班 级姓 名专 业学 号实 验 室实验名称Jsp应用成 绩 评 定教 师 签 名实验目的1、 request、response对象的应用2、 EL表达式的使用3、Javabeans使用实验内容内置对象的使用、el表达式、javabean应用实验过程、结果及分析一、1.编写一个含有文本输入框、密码框的登陆页面login.html登录页面帐号密码2.编写一个登陆验证页面logincheck.jsp,如果用户输入的用户名为admin,密码为123,则转到index.jsp文件,否则,提示登陆失败。 登录验证 request.getRequestDispatcher(index.jsp).forward(request, response); 您输了的用户名或密码有误! 实验过程、结果及分析二,1、请通过javaBean、EL表达式和JSTL来显示整个学生表中的信息 jstl 测试 $user.userID $user.password $user.username $user.phone $user.adress $user.date 测试完成! 实验报告(五)院系:信息学院 课程名称:Web数据库技术 日期:班 级姓 名专 业学 号实 验 室实验名称MVC模

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论