⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jsp.doc

📁 参考资料,大家可以看看自己做的jsp可以注意自己的编程风格
💻 DOC
📖 第 1 页 / 共 2 页
字号:
开发JSP/J2EE网站的15点经验(转)
2007年08月20日 星期一 21:18
1、[总体性]设置角色的JavaBean。
????????? 对于一个网站,通常会有很一下几种角色:注册会员、管理员、普通访问者,显然,对于注册会员和系统管理员就应该创建JavaBean。其中的参数不需要太多,只需要一些常用的就行,比如id,用户名,姓名等,以便使用。
例如:
????????? package eline.beans
????????? public class Person {
private String id = null;
private String uname = null;
private int click;

public Person(){
}
????????? }
注意:
?????????? 1.1对于String类型的参数已开始赋予null,以防后面出错;
?????????? 1.2对于int型,只定义就可以了;
?????????? 1.3如需要初始赋值,可写在构造方法里。
使用:
?????????? 在登录检验的Servlet里创建,写到session里面
???????????? Person nowPerson = new Person();
???????????? nowPerson.setId(id);
???????????? nowPerson.setUname(uname);
???????????? HttpSession elineSession = request.getSession();
???????????? elineSession.setAttribute("nowPerson", nowPerson);
?????????? 在JSP页面里这样获取:
???????????? <jsp:useBean id="nowPerson" class="eline.beans.Person" scope="session" />
?????????? 在Servlet里这样获取:
???????????? HttpSession elineSession = request.getSession();
???????????? Person nowPerson = (Person)elineSession.getAttribute("nowPerson");

2、[总体性]写一个系统配置文件
????????? 写一个配置文件,将网站名、数据库联接等信息写在里面,比如config.propertites,存放在WEB-INF的classes下(只能存放在这里),然后分别可以在JavaBean和Servlet中读取相关参数。这样,可以让用户方便的设置系统有关属性。
例如:config.propertites
//注意:等号后面的内容不要加引号
webName=大学生e线???????? //网站名字
mailboxRecords=10???????? //站内邮箱显示记录数
//数据库联接的相关信息
db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://localhost/eline
db.user=root
db.pass=******
读取程序示例:
ResourceBundle rb = ResourceBundle.getBundle("config");
String webName = rb.getString("webName");
int mailboxRecords = Integer.valueOf(rb.getString("mailboxRecords")).intValue();

3、[总体性]设置一个系统JavaBean
????????? 写一个系统JavaBean,在每个JSP页面和需要的Servlet中都调用它。一方面,可以将上述系统配置文件中的参数都在这个系统Bean中读取,方便在JSP页面中调用;另一方面,可以将系统中经常要用到的函数,如处理中文的编码转换、转化文本框数据为HTML或MD5算法等,这样在每个地方调用特别方便,也可以保证整体性,修改这个Bean,系统中所有相关的调用都会随之改变。
????????? 此外一点,在JSP中调用JavaBean时,scope应该设为session,这样可以让该Bean只在服务器实例化一次,节省资源。

4、[功能]登录的实现、判断的方法之一
????????? 对于一些面向特定角色的页面和处理过程,我们应该注意将其保护起来。比如只有登录的用户才能打开他的资料修改页面,只有管理员登录后才能打开相关的系统管理页面等等。为了保证安全,我们务必在这些页面或Servlet中进行一定的角色判断。为了方便的实现这一点,我们可以在1中所提及的角色Bean中创建:
public void isLogin(HttpServletResponse response) throws Exception{
???????? if(this.id==null||this.id.equals("")){
????????? response.sendRedirect("../index.jsp");
???????? }
}
//其中,response为JSP页面的默认response对象,用于实现页面的重定向。并且注意==null和.equals("")都要进行判断才安全。
????????? 那么,在该角色登录时,我们就应该实例划一个该角色Bean,并赋值,并将该角色Bean放入session,如:
//实例化一个Person并赋值
Person nowPerson = new Person();
nowPerson.setId(String.valueOf(rs.getInt("id")));
nowPerson.setUname(uname);
//存入session
HttpSession elineSession = request.getSession();
elineSession.setAttribute("nowPerson", nowPerson);
????????? 在JSP中的判断:
<jsp:useBean id="nowPerson" class="eline.beans.Person" scope="session" />
<%
???????? nowPerson.isLogin(response);
???????? //这里就要将respnse对象传递过去,来实现重定向
%>
???
????????? 在Servlet中的判断:
HttpSession elineSession = request.getSession();
Person nowPerson = (Person)elineSession.getAttribute("nowPerson");
try {
???????? nowPerson.isLogin(response);
} catch (Exception e1) {
???????? response.sendRedirect("../index.jsp");
}
????????? 退出登录的Servlet:
HttpSession elineSession = request.getSession();
elineSession.removeAttribute("nowPerson");
elineSession.invalidate();

5、[JSP技巧]运用动态包含解决导航条连接路径和当前栏目问题
????????? 做网站时,我们通常将头部信息(一般包括导航条在内)和尾部信息(版权信息等)独立出来,分别写在两个jsp文件内,然后在主体文件内包含他们。不同目录下的主体文件的导航条对应的连接路径是不一样的,并且有时候导航条需要知道主体文件对应的是哪个栏目,从而加亮该栏目,如图:

????????? 为了实现这些,我们可以使用动态包含,因为这种包含模式可以传递参数,如:
<jsp:include page="/top.jsp">
???????? <jsp:param name="MENU_THIS" value="01" />
???????? <jsp:param name="PATH_THIS" value="../" />
</jsp:include>
????????? 然后可以在top.jsp中获取这些参数,如:
<%
???????? String PATH_THIS = request.getParameter("PATH_THIS");
???????? String MENU_THIS = request.getParameter("MENU_THIS");
%>
????????? 从而进行相关的处理。
????????? 除此之外,在包含时我们应该注意<head></head>内的部分应该独立出head.jsp,然后在主体文件进行包含,这样既可以保证全站所有页面的head内都有head.jsp的内容,又可以有自定义的内容,如<title>。

6、[MySQL]Access导入MySQL、MySQL中文问题、MySQL的数据备份、MySQL的设置、MySQL中SQL特殊语法等
????????? 我们一般用惯了MySQL-Front这个MySQL的前台工具,但在这次项目中,它的诸多毛病就凸现出来了:将Access导入MySQL时,MySQL-Front对于文本类型、数值为负数的数值型字段总是出问题,不能正确导入;用MySQL-Front建立用户时,设置不了权限;不能执行自己导出的SQL文件等。于是另辟蹊径,发现了NavicatMySQL,觉得这个非常好用,在霏凡(www.crsky.com)即有得下。它不存在上述问题,可以轻松无误的将Access导入MySQL,并且可以方便进行数据备份,导出和导入SQL文件效率也很高。
????????? 安装好MySQL后,经常会出现中文编码问题,所有的中文都变成问号(?)。此问题是由MySQL中所设置的默认编码有关,经过在网上查阅资料,可以这样解决:进入MySQL的安装目录,打开my.ini,找到两处
default-character-set=latin1修改为:default-character-set=gb2312,再重启MySQL服务即可。
???

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -