servlet的一个小项目(一)
来源:互联网 发布:linux jdk环境变量 编辑:程序博客网 时间:2024/05/22 06:34
假期就要过去了,蜗牛也得滚回学校了。
这几天蜗牛沉迷于游戏了,没怎么好好看这个课件,不过刷了两遍之后,大体的代码也能看懂了,贴出来,顺便做做注释。
ps:这个课件是韩顺平老师的servlet。
首先是数据库:
drop database if exists spdb1;create database spdb1;use spdb1;
项目用的是sqlserver,因为太大了蜗牛没有装,就用mysql吧,指令略有不同。
上面:
如果有这个数据库就删除,再新建数据库,打开数据库。
另外可以用show databases查看数据库,show tables 查看数据库中的表。
一定要注意:mysql的操作是要加末尾的分号的。
create table users ( userId int auto_increment primary key, username varchar(20), passwd varchar(20), email varchar(30), grade varchar(20));建表,userId是自增长的主键。
下面插入数据:
下面是插入条目的语言,我测试的mysql的语句是:insert into users (属性,属性,属性)values(值,值,值);这样的格式insert into users (username,passwd,email,grade)values('admin','admin','admin@sohu.com',1);insert into users(username,passwd,email,grade) values('shunping','shunping','shunping@sohu.com', 1);insert into users(username,passwd,email,grade) values('tester1','tester1','tester1@sohu.com',5);insert into users(username,passwd,email,grade) values('tester2','tester2','tester2@sohu.com',5);insert into users (username,passwd,email,grade)values('tester3','tester3','tester3@sohu.com',5);insert into users(username,passwd,email,grade) values('tester4','tester4','tester4@sohu.com',5);insert into users(username,passwd,email,grade) values('tester5','tester5','tester5@sohu.com',5);insert into users(username,passwd,email,grade) values('tester6','tester6','tester6@sohu.com',5);insert into users (username,passwd,email,grade)values('tester7','tester7','tester7@sohu.com',5);insert into users(username,passwd,email,grade) values('tester8','tester8','tester8@sohu.com',5);insert into users(username,passwd,email,grade) values('tester9','tester9','tester9@sohu.com',5);insert into users (username,passwd,email,grade)values('tester10','tester10','tester10@sohu.com',5);insert into users (username,passwd,email,grade)values('tester11','tester11','tester11@sohu.com',5);insert into users(username,passwd,email,grade) values('tester12','tester12','tester12@sohu.com',5);insert into users(username,passwd,email,grade) values('tester13','tester13','tester13@sohu.com',5);insert into users (username,passwd,email,grade)values('tester14','tester14','tester14@sohu.com',5);
最后显示出所有的数据:
select * from users;
可以将上面的代码合成在一个sql脚本中(当然记得去掉注释),之后利用 source 文件路径
的方法引入这这个脚本。
这样的话数据库就算是建好了。
下面是具体的代码和注释:
注意这个项目是按着mvc修改过的:
//从数据库中得到连接package com.tsinghua;import java.sql.*;import javax.sql.*;import javax.naming.*;public class ConnDB { private Connection ct=null; public Connection getConn(){ //这是使用jdbc的方式来连接数据库 try { //1加载驱动0.02s*10000*30 //下面这个是用sqlserver的驱动连接,可以自己换成mysql //Class.forName("com.mysql.jdbc.Driver"); //ct=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/select_test" // , "root" , "这里是密码"); Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); //得到连接 ct=DriverManager.getConnection("jdbc:microsoft:sqlserver: //127.0.0.1:1433;databaseName=spdb1","root","这里是密码"); } catch (Exception ex) { ex.printStackTrace(); } //这里,如果有调用这个函数的,就返回一个和数据库连接好的连接。这应该就是传说中的业务bean。 //其实就是返回了一个连接而已,之后JDBC操作数据库的是在使用的时候。 return ct; /*使用数据源连接池的方式连接数据库 try { //创建一个上下文环境 Context con=new javax.naming.InitialContext(); //通过con得到数据源 DataSource ds=(DataSource) con.lookup("java:comp/env/shunping"); ct=ds.getConnection(); System.out.println ("使用连接池的方式"); } catch (Exception ex) { ex.printStackTrace(); } return ct;*/ }}
测试Cookie。
Cookie是保存在客户的电脑上面的。服务器有需求的时候可以去访问。
package com.tsinghua;import javax.servlet.http.*;import java.io.*;public class CookieTest1 extends HttpServlet{ //处理get请求 public void doGet(HttpServletRequest req,HttpServletResponse res){ try { res.setContentType("text/html;charset=gbk"); PrintWriter pw=res.getWriter(); //当用户访问该servlet时, 就将信息创建到该用户的cookie中 //1. 现在服务器端创建一个cookie //其实cookie的结构就是一张表。color1相当于是key,后边的red相当是value Cookie myCookie=new Cookie("color1","red"); //2. 该cookie存在的时间 myCookie.setMaxAge(30); //如果你不设置存在时间,那么该cookie将不会保存 //3. 将该cookie写回到客户端 res.addCookie(myCookie); pw.println("已经创建了cookie"); } catch (Exception ex) { ex.printStackTrace(); } }}
使用cookie:
//如何读取cookie案例package com.tsinghua;import javax.servlet.http.*;import java.io.*;public class CookieTest2 extends HttpServlet{ //处理get请求 public void doGet(HttpServletRequest req,HttpServletResponse res){ try { //下面这句话我就没有测试成功,也不知道怎么的,我换了很多种方法中文都是问号。 res.setContentType("text/html;charset=gbk"); PrintWriter pw=res.getWriter(); //从客户端得到所有cookie信息 //cookie是每次用的时候读到服务器,用完了回写到客户端这样的。(蜗牛的理解) //多条cookie保存在一个cookie文件中 Cookie [] allCookies=req.getCookies(); int i=0; //如果allCookies不为空... if(allCookies!=null){ //从中取出cookie for(i=0;i<allCookies.length;i++){ //依次取出 Cookie temp=allCookies[i]; //cookie使用getName()函数取出那个“key”。 //cookie就是一张“key-value”的表。 if(temp.getName().equals("color1")){ //得到cookie的值 String val=temp.getValue(); pw.println ("color1="+val); break; } } if(allCookies.length==i){ pw.println("cookie 过期"); } }else{ pw.println ("不存在color1这个cookie/或是过期了!"); } } catch (Exception ex) { ex.printStackTrace(); } }}
删除一条cookie:
//如何删除cookie案例package com.tsinghua;import javax.servlet.http.*;import java.io.*;public class CookieTest3 extends HttpServlet{ //处理get请求 public void doGet(HttpServletRequest req,HttpServletResponse res){ try { res.setContentType("text/html;charset=gbk"); PrintWriter pw=res.getWriter(); //从客户端得到所有cookie信息 Cookie [] allCookies=req.getCookies(); int i=0; //如果allCookies不为空... if(allCookies!=null){ //从中取出cookie for(i=0;i<allCookies.length;i++){ //依次取出 //你可以想想一下这个操作,这个操作过后,allcookie就是一个N行两列的表格。 Cookie temp=allCookies[i]; if(temp.getName().equals("color")){ //将该cookie删除 //设置“年龄”为0的效果就是删除。见文档。(设置为0好像是不保存的意思) temp.setMaxAge(0); pw.println("删除了color这个cookie"); break; } } } } catch (Exception ex) { ex.printStackTrace(); } }}
0 0
- servlet的一个小项目(一)
- servlet的一个小项目(二)
- servlet的一个小项目(三)
- servlet的一个小项目(四)
- servlet的一个小项目(五)
- servlet的一个小项目(六)
- Servlet做的一个小项目
- 一个swing小项目(一)
- SM-一个servlet+ajax测试小项目
- 一个android项目开发遇到的各种小问题(一)
- Servlet学习日记(一)——什么是Servlet及手动编写一个简单的servlet
- 编写一个简单的servlet小程序
- Servlet小项目
- Servlet一个最简单的例子(一)
- 一个java的小项目
- 做的一个小项目
- 一个servlet小程序
- 接受导师的建议--自己做一个小的C项目---读取bmp格式图片(一)
- java面试复习
- form 表单提交前验证
- Java之反射机制
- Eclipse 插件开发之 树形视图展示要点
- iOS-常见编程规范汇总
- servlet的一个小项目(一)
- 工厂方法模式
- 获得目标进程PEB,并获得进程各种信息
- hdu 5769后缀数组 求含有某个字母的某个字符串的不同子串的个数
- Fiddler教程(Web调试工具)
- HDU 1213 并查集
- Mac和Linux系统的:Arp欺骗源码
- ubuntu 关机,重启,注销命令
- 文章标题