论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > 计算机科学与技术 >

基于web的图书馆借阅系统(论文+程序)

chStr函数功能:解决乱码

Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java文件本身编译时产生的乱码问题和Java程序与其他媒介交互产生的乱码问题。JSP以Java为基础,自然也继承了Java所遇到的中文乱码问题。 http://www.paper51.com

但在使用数据库时,有些Driver会将从数据库中读出的中文自动的转换成Unicode,而有些不会,如果Driver做过转换而系统又再做一次,就会出现问题,从数据库中读出的中文字符不会正确显示,而是出现“??”。 内容来自论文无忧网 www.paper51.com

而且,在表单提交或是URL传参数值时依然是按照Web容器在内部默认的字符编码格式ISO 8859-1来进行处理的。同时,几乎所有的浏览器在传递参数时都是默认以UTF-8的方式来传递参数的。所以,虽然在java源文件在出入口的地方指定了正确的编码方式,但其在容器内部运行是还是以ISO 8859-1来处理的,这样导致在提交的表单中若有中文字符,在存入数据库时使用的是ISO 8859-1,而本系统使用的My SQL数据库默认使用的是GBK编码,这样导致的结果就是存到数据库的数据因编码不同而出现乱码现象 。

copyright paper51.com

调用字符编码转换Bean中的方法,对字符编码进行强制转换,使存放到数据库的数据编码格式与数据库的内部编码格式统一,解决了向数据库中插入中文字符、将从数据库中读取的数据正确的显示的问题,所以做了一个方法放在bean里面,代码如下

http://www.paper51.com

public StringchStr(String str){

paper51.com

              try copyright paper51.com

              { 内容来自论文无忧网 www.paper51.com

                     byte[]temp=str.getBytes("ISO8859-1");

copyright paper51.com

                     Stringtemp2=new String(temp); 内容来自www.paper51.com

                     returntemp2;        内容来自www.paper51.com

              }catch(Exceptione){System.out.println("chStr():"+e.getMessage());}

copyright paper51.com

              return"null";                        copyright paper51.com

              } 内容来自论文无忧网 www.paper51.com

      copyright paper51.com

4.1  发布首页公告功能模块 内容来自www.paper51.com

内容来自www.paper51.com

图6首页发布功能界面 copyright paper51.com

在后台管理中能自由发布首页公告信息,来通知各种事情,其条目以滚动的形式来表现。

http://www.paper51.com

该功能的实现由admin_addnotice.jsp和admin_addnotice_post.jsp文件实现。

http://www.paper51.com

在admin_addnotice.jsp中主要是发布界面的编写和传输notice内容,本功能的核心程序放在admin_addnotice_post.jsp中,负责存储内容到数据库和错误提示。 http://www.paper51.com

在admin_addnotice_post.jsp中关键代码如下: http://www.paper51.com

//从request获取名为"content"的参数值 内容来自www.paper51.com

Stringcontent=request.getParameter("content");

内容来自论文无忧网 www.paper51.com

//解决中文乱码问题

http://www.paper51.com

Stringtcontent=addbook.chStr(content);

内容来自www.paper51.com

//合成SQL语句,将content的值传入,作用为更新公告表

http://www.paper51.com

Stringsql="update notice set content='"+content+"',createtime=DEFAULTwhere id=1";

内容来自论文无忧网 www.paper51.com

//申明一个int的变量temp 内容来自www.paper51.com

int temp=-2; 内容来自论文无忧网 www.paper51.com

//如SQL执行成功,temp>0,否则执行失败 http://www.paper51.com

temp=notice.update(sql);

http://www.paper51.com

4.2  留言板功能模块

paper51.com

留言板功能模块分为发布模块和回复模块。发布模块在前台完成,可以让任何人留言,而回复模块在后台使用只允许管理员查看回复。

copyright paper51.com

4.2.1   发布留言模块 copyright paper51.com

内容来自www.paper51.com

图7 发布留言界面 http://www.paper51.com

本功能所有文件放在guest目录下面,包含了guestbook_index.jsp,guestbook_postmessage.jsp,guestbook_save.jsp,guestbook_show.jsp,guestbook_viewmessage.jsp这5个文件,分别实现了留言板各个功能。 内容来自论文无忧网 www.paper51.com

其主要代码在guestbook_postmessage.jsp中. copyright paper51.com

//从request获取名为"username"的参数值

内容来自www.paper51.com

Stringusername=request.getParameter("username"); http://www.paper51.com

//从request获取名为"content"的参数值 http://www.paper51.com

Stringcontent=request.getParameter("content"); paper51.com

//合成SQL语句,将username,content的值传入nickname,content表中,作用为将留言板内容放入数据库中

http://www.paper51.com

String.sql="insertinto guestbook (nickname,content)values('"+username+"','"+content+"')";

内容来自www.paper51.com

//判断语句,如果username为空或者错误,content为空或者错误的时候。 paper51.com

if(username==null||username.equals("")||content==null||content.equals(""))

copyright paper51.com

{

内容来自论文无忧网 www.paper51.com

else{

paper51.com

int temp=-2; paper51.com

//如SQL执行成功,temp>0,否则执行失败

内容来自论文无忧网 www.paper51.com

temp=guestbook.update(sql);

内容来自论文无忧网 www.paper51.com

%>

paper51.com

//返回错误信息errorpage.jsp,显示“请检查你的输入.请确保你输入的信息的正确性!”错误信息文字以提示。

paper51.com

else{

内容来自论文无忧网 www.paper51.com

session.setAttribute("error","请检查你的输入.请确保你输入的信息的正确性!"); copyright paper51.com

response.sendRedirect("../errorpage.jsp"); 内容来自论文无忧网 www.paper51.com

} } 内容来自论文无忧网 www.paper51.com

%> copyright paper51.com

4.2.2   回复留言模块 paper51.com

本功能主要是用于回复留言,由admin_guestbook_reply.jsp实现.其实现方法与前面类似,不在累述。 内容来自www.paper51.com

4.3  系统管理员登录功能模块

内容来自www.paper51.com

内容来自www.paper51.com

图8 管理员登录界面 内容来自论文无忧网 www.paper51.com

本功能涉及到图书管理操作的jsp文件,为了方便全部把它们放在admin目录里面,并且通过session防止非法登录.把这个功能提取出来,单独作为一个jsp文件,然后include到需要加密的jsp文件头部.这样如果非法用户直接提交后台URL,系统会将非法用户直接转到前台首页

内容来自www.paper51.com

本功能由admin_login.jsp和admin_logincheck.jsp实现 paper51.com

其主要代码是在admin_logincheck.jsp中,如下 copyright paper51.com

<% 内容来自论文无忧网 www.paper51.com

//从request获取名为"username"的参数值 copyright paper51.com

String username=request.getParameter("username");

http://www.paper51.com

//从request获取名为"password"的参数值

内容来自www.paper51.com

Stringpassword=request.getParameter("password");

内容来自www.paper51.com

//如果username为空或者错误,以及password为空或者错误。 paper51.com

if(username==null||username.equals("")||password==null||password.equals(""))

paper51.com

else{

内容来自论文无忧网 www.paper51.com

//将username赋值到tusername,password赋值到tpassword 内容来自论文无忧网 www.paper51.com

String tusername=logincheck.chStr(username); http://www.paper51.com

String tpassword=logincheck.chStr(password);

内容来自论文无忧网 www.paper51.com

//搜索数据库中tusername和其对应的tpassword字段。

copyright paper51.com

String sql="select * from admin whereusername='"+tusername+"' and password='"+tpassword+"'"; 内容来自论文无忧网 www.paper51.com

int temp=-2;

内容来自论文无忧网 www.paper51.com

temp=logincheck.select(sql); 内容来自www.paper51.com

if(temp>0){ http://www.paper51.com

//表明验证成功,进入admin_index.jsp,并将用户定格为登录用户。

copyright paper51.com

session.setAttribute("name",tusername); paper51.com

response.sendRedirect("admin_index.jsp"); copyright paper51.com

}else{ 内容来自论文无忧网 www.paper51.com

//验证失败,返回错误提示信息,并返回errorpage.jsp页面。

copyright paper51.com

session.setAttribute("error","请检查你的用户名和密码!");

paper51.com

response.sendRedirect("../errorpage.jsp"); 内容来自www.paper51.com

}} paper51.com

 %>

内容来自论文无忧网 www.paper51.com

------分隔线----------------------------
联系方式