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

来源:互联网 发布:诺基亚5250软件下载 编辑:程序博客网 时间:2024/06/01 07:36

一、目的:学习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中

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

做完这个项目才发现自己的编程素养有待提高,以上仅为自己在做的过程中所做笔记,及个人的一些看法,欢迎大神一起交流

0 0
原创粉丝点击