JSP

网页应用程序开发

JSP教学11 会员系统的设计2

教学目的:了解JavaBean与Servlet的概念与使用方法

“云端网”会员系统将使用JavaBean实现密码加密功能,使用Servlet实现上传图片作为头像功能,本课将介绍这两个技术的概念及其在JSP中的使用 

11.1 JavaBean类

JavaBean(或称Bean)是一种Java类,通过封装属性和方法成为具有特定功能或处理某个业务的对象。

JavaBean的编写规范:
- 必须是一个公共类(访问属性应为public)
- 必须有一个公共的且不带参数的构造方法
- 不应有公共属性(访问属性应为private)
- 类的属性应通过一组存取方法(getXxx和setXxx)来访问。

11.2 使用JavaBean

要在JSP中使用JavaBean,须将Bean类文件放入Web应用程序目录的类文件夹WEB-INF\classes中(包名对应子目录名),这样就可使用jsp:useBean标记创建Bean类的实例:

<jsp:useBean id="Bean实例名" scope="有效期" class="Bean类名" />

然后如果Bean的属性有存取方法,就可以在HTML代码中使用jsp:setProperty标记设置Bean的属性值:

<jsp:setProperty name="Bean实例名" property="Bean的属性名" value="值" />

或者使用jsp:getProperty标记获取Bean的属性值:

<jsp:getProperty name="Bean实例名" property="Bean的属性名" /> 

也可以在JSP代码中使用标准Java语言执行Bean的方法。

JavaBean的有效期取值:
- page:有效期为当前页面
- request:有效期为请求页面(即当前页面提交信息后对象仍有效)
- session:有效期为用户会话(即用户关闭浏览器前对象一直有效)
- application:有效期为应用程序(即应用程序运行期间所有用户共享同一对象)

例:tools.MD5是一个MD5加密Bean,则类的字节码文件放置路径应为WEB-INF\classes\tools\MD5.class

先创建实例对象oMD5

<jsp:useBean id="oMD5" scope="request" class="tools.MD5" />

然后就可以用类的getMD5ofStr方法将提交的密码变换为加密后的字符串 

oMD5.getMD5ofStr(request.getParameter("password"))

11.3 Servlet类

Servlet是一种Java类,为javax.servlet.http.HttpServlet类的子类

编写Servlet需要引入javax.servlet和javax.servlet.http包(相应类库文件为Tomcat安装目录下的lib\servlet-api.jar)

可以使用与访问JSP页面相同的方式访问Servlet,包括以表单或URL参数的方式提交用户信息

(注意:实际上JSP技术的基础就是Servlet,JSP页面创建或修改后都是由JSP引擎自动转化为Servlet程序编译运行的) 

11.4 使用Servlet

要在JSP中使用Servlet,首先须将Servlet类文件放入Web应用程序目录的类文件夹WEB-INF\classes中(包名对应子目录名)

然后在Web应用程序部署文件WEB-INF\web.xml中配置Servlet(此文件更改后Tomcat会自动重载Web应用程序)

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app>
    <servlet>
        <servlet-name>Servlet名</servlet-name>
        <servlet-class>Servlet类名</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Servlet名</servlet-name>
        <url-pattern>/Servlet访问路径</url-pattern>
    </servlet-mapping>
</web-app>

这样就可以用浏览器直接访问此Servlet

例:tools.UploadServlet是一个上传图片的Servlet,则类的字节码文件放置路径应为WEB-INF\classes\tools\UploadServlet.class

然后在Web应用程序部署文件WEB-INF\web.xml中配置UploadServlet

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app>
    <servlet>
        <servlet-name>UploadServlet</servlet-name>
        <servlet-class>tools.UploadServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>UploadServlet</servlet-name>
        <url-pattern>/upload</url-pattern>
    </servlet-mapping>
</web-app>

将带有文件域的表单的动作设置为upload,就可以实现提交图片文件保存到服务器的功能,传入avatar参数abc,则上传的图片会转为120像素的小图片abc.jpg再保存到服务器。

<form id="fileupload" action="upload?avatar=abc" method="POST" enctype="multipart/form-data">
        <input type="file" name="fileField" id="fileField">
</form>

评论:

发表评论:
该文章禁用评论功能。