您的位置:首页 > 其它

第一个项目——用户管理系统

2014-09-21 15:21 302 查看
一、目的:学习servlet,完成用户管理系统

二、涉及内容:TomCat的安装及使用,MyEclipse的安装及使用,MySQL的安装及使用,Cookie的原理和使用,HttpSession的原理和使用,连接数据库,分页······

1.TomCat的环境变量配置:

安装TomCat后,在系统变量下添加CATALINA_HOME和CATALINA_BASE两个变量,值为TomCat的安装路径
再添加CLASSPATH变量,值为.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar 其中JAVA_HOME为jdk的安装目录,以前已配置
最后在Path变量下添加%JAVA_HOME%\jre\bin;%CATALINA_HOME%\lib;%CATALINA_HOME%\bin
在CMD命令下输入命令:startup,出现如下对话框,表明服务启动成功。

打开浏览器,在地址栏中输入http://localhost:8080回车,如果看到Tomcat自带的一个JSP页面,说明你的JDK和Tomcat已搭建成功。

2.MyEclipse的配置

和TomCat相关联:Window->Preference,直接输入TomCat,选择对应的版本,TomCat 7.x
选择Enable,选择TomCat home directory后面的Browser按钮,选择TomCat的安装路径,然后点击Apply

选择TomCat下面的jdk,选择下拉框里的jdk 1.7,点击ok

注:有可能jdk安装目录需要自己选择

3.MySQL的安装:参考:http://www.jb51.net/article/23876.htm

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

一、同一用户的不同页面共享数据(sendRedirct()方法)(最简单)通过该方法将信息传送给下一个页面:如

sendRedirect("welcome?uname = admin");的形式

优点:传送信息的速度比较快

缺点:他只能传送一个字符串,而不能使一个对象

sendRedirect(“welcome?uname=admin”)的形式

注意点:1 welcome代表必要跳转到的那个servlet的URL

2 servlet 的URL名和变量之间有?号

3 如果要传递两个以上的值,他们间要用&号隔开

如:sendRedirect(“welcome?uname=admin&pass=admin”);

4 如果传递的是中文,那你将得到乱码,需要处理一下

res.setContentType("text/html;charset=gbk"); 返回以gbk支持的编码

二、session

可以把它看为一张表,这张表有两列,有多少行就没有限制,而每一行就是session的一个属性,每个属性有两个部分,一个是该属性的名字,另一个是他的值

1:得到session

HttpSession hs = request.getSession(true);

2:向Session添加属性

hs.setAttribute(String name,object val);

3:从Session得到某个属性

String name = hs.getAttribute(String name);

4.从Session删除掉某个属性:

hs.removeAttribute(String name);

注: 当某个浏览器访问网站(通过双击浏览器进行的)时,服务器会给浏览器分配唯一一个Session id,并依此来分别不同的浏览器(即客户端),因为Session的各个属性

要占用服务器的内存,因此软件公司都是在迫不得已的情况下才使用

三、servlet操作注意事项:

需要将链接数据库的1个jar包,拷贝到tomcat服务器(SqlServer需要3个jar包)

具体有两种:

(1)将jar包考到tomcat中的lib文件夹里

(2)在webapps目录下web-inf文件夹里创建一个lib然后把三个jar包考到lib文件夹下

两种方法的区别

第一种所有的webapps都可使用3个jar【公用lib库】

第二种只有放jar的那个webapps能使用jar【独用lib库】

四、JAVA连接MYSQL

try
{
//加载驱动程序

Class.forName("com.mysql.jdbc.Driver");

//连接数据库

Connection com = DirverManager.getConnection("jdbc:mysql://127.0.0.1:3306/abc",user,password);

}


五、在wel页面添加图片

在webApps下,建立一个文件夹,如imgs。然后将图片拷贝到这个文件夹下,在

servlet中添加:

<img src="./imgs/图片名"/>

六、分页技术

1.分页算法

需要四个变量,

int pageSize :每页显示多少记录

int pageNow :希望显示第几页

int pageCount :一共有多少页

int rowCount :一共有多条记录

说明:

pageSize是指定的;pageNow是用户选择的

rowCount是从表中查询得到的

pageCount是计算出来的,计算公式

if(rowCount%pageSize==0)

{

pageCount = rowCount/pageSize;

}

else

{

pageCount = rowCount/pageSize+1

}

所以需要用到

select 字段名列表 from 表名 where id between ?and ?

以users表为例,显示第三页,查询语句为

select * from users where userId between 7 and 9

缺点,如果表的id被删除了,那么,某页中可能会少一条记录

因此我们的最终解决方法如下:

select userid,username,passwd,email,gread from mytable

where userid not in (select userid from mytable"+(pageSize*(pageNow-1))+"limit"+pageSize

查询数据库中有多少条记录:

select count (*)from mytable;

七、Cookie和session的比较

(1)cookie数据存放在客户的浏览器上,session数据放在服务器上

(2)cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,如果主要考虑到安全应当使用session

(3)session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,如果主要考虑到减轻服务器性能方面,应当使用COOKIE

(4)单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能3K。

(5)所以:将登陆信息等重要信息存放为SESSION;其他信息如果需要保留,可以放在COOKIE中

------------------------------------------------------------------------------------------------------------------------------------------------

做完这个项目才发现自己的编程素养有待提高,以上仅为自己在做的过程中所做笔记,及个人的一些看法,欢迎大神一起交流
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: