高级网站设计-Read.ppt

上传人:ga****84 文档编号:459006 上传时间:2018-10-09 格式:PPT 页数:122 大小:1.36MB
下载 相关 举报
高级网站设计-Read.ppt_第1页
第1页 / 共122页
高级网站设计-Read.ppt_第2页
第2页 / 共122页
高级网站设计-Read.ppt_第3页
第3页 / 共122页
高级网站设计-Read.ppt_第4页
第4页 / 共122页
高级网站设计-Read.ppt_第5页
第5页 / 共122页
点击查看更多>>
资源描述

1、高级网站设计,经济管理学院信息管理教研室 陈冈,本课程主要内容,Eclipse3.2、JBuilder2005Servlet的使用 JavaBean的使用服务器的安装和配置 apache与tomcat的整合使用、基本身份验证、摘要身份验证、JDBCRealm验证、DataSource验证、SSL保护Web高级应用 文件上传与下载的实现、Cookie管理、页面缓存、文件操作的实现、基于listener的计数器,本课程主要内容,数据库高级应用 数据库性能优化、数据库连接池、邮件发送和接收邮件服务器meark、邮件发送和接收,本课程要求的前导知识,HTML基本语法JSP基本知识Tomcat、resi

2、n基本配置数据库基本知识,例如SQL语句、mysql数据库JSP中与数据库的JDBC连接,本课程主要涉及的软件,1。JDK1.5.02。Tomcat5.5.73。mySQL4.0、 mySQL-Front3.24。Dreamweaver MX 20045。 Eclipse3.2,如何成为一个优秀的jsp程序员,、建立并且理解你的WebServer。、保证你理解HTML。花时间学习手工写作html是很有必要的。因为你将会使用JSP和HTML混合编程,精通HTML语法是重要的。所以,你必须能流利地写HTML。训练时间:24个星期。、开始学习Java。理解Java基础是很重要的。不用担心学习Swin

3、g或Java的图形方面,因为在JSP中你不会使用这些特征。集中精力在Java工作的细节,学习Java的逻辑,也在JavaBean上花时间。学习Applet是好的,但是就象Swing,JSP的大多数应用将不使用小程序。训练时间:36个星期。,如何成为一个优秀的jsp程序员,、学习JavaScript学习怎么将JavaScript在HTML中验证输入的Form元素。也学习JavaScript怎么能在一HTML页以内修改Form的元素。最后要求你能从一HTML页内的事件中触发JavaScriptFunction。训练时间:12个星期。、学习并且理解你的WebServer的更多细节。熟悉WebServ

4、er的特征,这是很重要的。训练时间:2天。,如何成为一个优秀的jsp程序员,、建立你的JSPServer推荐以Tomcat开始。它可以很好地运行JSP程序。当你不能在生产使用Tomcat时,学习尽可能多的知识以便于更好的运行程序。另外,许多JSP程序员使用Tomcat。因此当你遇到一个问题时,你将容易发现帮助。安装时间:12天。、开始学习JSP。基本的JSP学习通过的步骤1到步骤6可以完成,然后使用JSP对象和脚本写JSP程序来联系。训练时间:46个星期。,如何成为一个优秀的jsp程序员,、学习更多的JSPserver。 没有关于更多的JSPServer当然也可以运行jsp程序。然而,许多JS

5、Pserver都由自己特殊的特征,可以让你更好的理解你的JSP工程。学习更多的Jspserver如何处理jsp程序是有必要的。同样也可以优化你的JSP应用程序,并且使之运行得更快而不出任何问题。训练时间:27天。,如何成为一个优秀的jsp程序员,、学习JDBC。JSP大多数应用将使用数据库,JDBC被用于数据库连接。经常忽略的一个事实就是,每个JDBCDriver所支持的东西是相当不同的。了解并熟悉在jsp工程上被使用的JDBCdriver的细节是很重要的。(有时这部分的学习被包含在前面Java或JSP的学习中了。)训练时间:12个星期。,如何成为一个优秀的jsp程序员,到现在,你已经成为了熟

6、练的JSP程序员。仍然有很多需要学习,你可以考虑扩展你的知识比如DHTML,XML,java证书,JSPTagLibraries或Servlets,看你想要造什么类型的网站而决定了。 这些训练是JSP的核心。你不必都学习上面所有的,取决于你在工程中分配到什么任务和你已经有什么知识。但是这是成功地训练程序员的时间表。关键的单元是时间。平均的说,5个月时间确实能够训练一个人(从开始到完成)成为一个对jsp熟悉程序员。5个月时间似乎很长,但要成为一个资深的WEB程序员所学的东西远远不止5个月和以上内容。,第一章 配置系统环境,1。安装JDK1.5.0:http:/J2。安装Tomcat5.5.7著名

7、的Apache Group的Jakarta小组开发(http:/www.jakarta.org)。3。设置环境变量JAVA_HOME:c:javajdk1.5.0classpath:.;C:javajdk1.5.0libtools.jar;C:javajdk1.5.0libdt.jarpath:%JAVA_HOME%bin; 这一句放在最前面,否则eclipse启动不了4。安装mySQL,5。安装Eclipsehttp:/www.eclipse.org/downloads/index.php 目前为止,大多数 Java 程序员都听说过 Eclipse,它正迅速成为最流行的 Java 编程环境。

8、在目前所有的IDE中,Eclipse可以说是最有发展前途的产品之一。Eclipse最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。目前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、RationalSoftware、RedHat及Sybase,最近Oracle也计划加入到Eclipse联盟中。 Eclipse 是否与其他花钱的 IDE 一样好? 答案非常确定!对于编码、调试、重构、单元测试等等, Eclipse 可以与任何一种 IDE 匹敌,甚至比它们还要好。与昂

9、贵的 JBuilder2005 版本相比,您可能会发现 Eclipse 对很多特性的支持都比 JBuilder 更好。,6。下载MyEclipse Eclipse插件,开源软件。使Eclipse支持EJB、JSP、Servlet等等等。 直接安装即可。,第二章Servlet的使用2.1理解Servlet,1。认识Servlet Servlet 是封装的Java类,可以认为是服务器上的小应用程序。其优点:平台无关性;执行效率高;应用广泛;例如:信用卡、在线支付等等。因此非常适合于服务器端的处理与编程。其缺点:不容易表现网页的风格。,2.1理解Servlet,2。Servlet运行环境编写Serv

10、let源程序(.java)编译为class 放置在服务器相应目录配置web.xml3。Servlet程序结构主要由三大部分:定义包导入必需的类声明Servlet名称 初始化、处理用户响应、清除释放资源,package bysservlet;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;public class Servlet7 extends HttpServlet /Initialize global variables public void init() throws ServletExceptio

11、n /Process the HTTP request public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException response.setContentType(CONTENT_TYPE); PrintWriter out = response.getWriter(); out.println(“hello,every one!); out.close(); /Clean up resources public void d

12、estroy() ,4。Servlet的生命周期,装载Servlet程序Web Server创建Servlet的实例Web Server调用Servlet的init()方法Web Servlet等待客户端请求 一个客户端请求到达Web Server Web Server创建一个请求对象Web Server创建一个响应对象Web Server激活service方法,传递参数、处理客户端请求Web Server不再需要时,释放资源,5。Servlet常用方法,doGet()doPost()service()init()destroy(),6。Servlet示例1,package bysservle

13、t;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;public class testservlet extends HttpServlet private static final String CONTENT_TYPE = text/html; charset=GB2312; /Initialize global variables public void init() throws ServletException ,/Process the HTTP request public void serv

14、ice(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException response.setContentType(CONTENT_TYPE); PrintWriter out = response.getWriter(); out.println(testservlet); out.println(); out.println(); out.println(请稍候,系统3秒后自动返回主页。); out.println(); out.println(); out.c

15、lose(); /Clean up resources public void destroy() ,7。Servlet的配置,在web.xml中加入: testservlet bysservlet.testservlet testservlet /tests,8。Servlet示例2,获取用户表单传递的参数值,并显示在屏幕上。基本思路:1、编写JSP表单,其action设置为servlet2、编写Servlet,在Web.xml中配置好,利用doPost()或者doGet()或者service()接收用户表单提交的数据。思考: 使用doPost()、doGet()或者service()接收表

16、单提交的数据有无规律可循?能否将成绩表的数据利用Servlet显示为Excel表格且用户可以另存为excel的xls文件。,9。认识listener Servlet,package listener;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;import java.io.FileWriter;public class listenerServlet extends HttpServlet implements ServletContextListener, ServletContextAttribut

17、eListener, HttpSessionListener, HttpSessionAttributeListener /Notification that the web application is ready to process requests public void contextInitialized(ServletContextEvent sce) /Notification that the servlet context is about to be shut down public void contextDestroyed(ServletContextEvent sc

18、e) /Notification that a session was created public void sessionCreated(HttpSessionEvent se) /Notification that a session was invalidated public void sessionDestroyed(HttpSessionEvent se) ,10。Listener Servlet的配置,在web.xml中加入: listener.listenerServlet,思考与练习,1、编写Servlet,显示一个简单成绩单表格。2、编写Servlet,通过JDBC访问数

19、据库。3、编写Servlet,根据用户表单提交的用户名、密码判断用户是否是合法用户(用户名为111、密码为222表示合法用户)。4、编写Servlet,输出excel表格。5、如何在Servlet中实现页面包含?6、如何编写Servlet,实现文件下载功能。7、如何编写listener Servlet,实现计数器功能。,第三章 JavaBean3.1JavaBean概述,1。什么是JavaBean JavaBean是描述Java的软件组件模型。通过JavaBean可以无限扩充Java程序的功能,通过JavaBean的组合可以快速的生成新的应用程序。 对于程序员来说,最好的一点就是JavaBea

20、n可以实现代码的重复利用,另外对于程序的易维护性等等 也有很重大的意义。JavaBean在服务器端应用方面表现出来了越来越强的生命力。,1。什么是JavaBean,比如说一个购物车程序,要实现购物车中添加一件商品这样的功能,就可以写 一个购物车操作的JavaBean,建立一个public的AddItem成员方法,前台Jsp文件里面直接调用这个 方法来实现。如果后来又考虑添加商品的时候需要判断库存是否有货物,没有货物不得购买,在这个 时候我们就可以直接修改JavaBean的AddItem方法,加入处理语句来实现,这样就完全不用修改前台 jsp程序了。 当然,也可以把这些处理操作完全写在jsp程序

21、中,不过这样的jsp页面可能就有成百上千行,光看 代码就是一个头疼的事情,更不用说修改了。由此可见,通过 JavaBean可以很好地实现逻辑的封装、程序的易于维护等等。 如果您使用Jsp开发程序,一个很好的习惯就是多使用JavaBean。,2。一个简单的JavaBean,package dbbeans;public class myBean public myBean() ,3.2JavaBean的构成,1。JavaBean构成 一般由属性、方法组成。 JavaBean的值是通过一些属性获得的,你可通过这些属性访问JavaBean设置。以一个人来打比方,这个人就是一个JavaBean,这个人的

22、名字、身份证号码以及住址就是其属性。 JavaBean的方法是指你赋予其能够执行的任务。类似于一个人,骑自行车就是其方法。 在JSP网站,你基本上就是通过JavaBean来使你的网站动态化。,2。JavaBean的使用, 或者: ,例如:,2。JavaBean的使用,一旦你声明了一个JavaBean,你就可以访问它的属性来定制它。要获得属性值,请用“”标记。有了这个标记,你就能指定将要用到的Bean名称(从useBean的id字段得到)以及你想得到其值的属性。实际的值被放在输出中: ,2。JavaBean的使用,要改变JavaBean属性,你必须使用“”标记。对这个标记,你需要再次识别Bean

23、和属性,以修改并额外提供新值。如果命名正确,这些值可以从一个已提交的表中直接获得:参数获得: 可以从一个参数获得,但你必须直接命名属性和参数: 或者直接用一个名字称和值来设置: /,2。JavaBean的使用,万能星(*):关于JavaBean 的最后一件事: 为了Web服务器能找到JavaBean,你需要将其class类文件放在一个特殊位置。一般放置在自己站点的WEB-INFclasses下。注意:包的问题!,3。JSP与JavaBean结合示例,count.java文件主要内容:package count;public class counter int count = 0;public

24、counter() public int getCount() count+; return this.count; public void setCount(int count) this.count = count; ,JSP文件mycnter.jsp内容:, counter JBuilder Generated JSP 下面看另外一个JavaBean与数据库交互的示例:,思考与练习,1、编写一个JavaBean,具有属性wid,其值为welldone。编写jsp文件,输出该JavaBean的wid属性的值。2、编写一个JavaBean,实现用户登录功能。若数据库中存在该用户,显示“欢迎您

25、访问!”,否则显示“您没有权限访问!”3、编写一个JavaBean,实现用户注册功能。,3.3 通用的数据访问JavaBean,1。动态配置数据源在WEB-INFclasses下创建init.properties文件,示例内容如下:#系统配置默认值connJDBC.dbDriver=com.mysql.jdbc.DriverconnJDBC.dbURL=jdbc:mysql:/localhost/bysconnJDBC.dbUsername=bysconnJDBC.dbPassword=bys007,2。读取properties文件的方法ResourceBundle rb = Resource

26、Bundle.getBundle(init);String dirver= rb.getString(connJDBC.dbDriver);String url= rb.getString(connJDBC. dbURL );String username= rb.getString(connJDBC. dbUsername );String password= rb.getString(connJDBC. dbPassword );Class.forName(dirver);Conncetion conn = DriverManager.getConnection(url,username,

27、 password);,3. 创建commJDBC,封装数据访问的常用方法package dbbeans;public class commJDBC private Connection conn = null; private Statement stmt = null; private PreparedStatement prepstmt = null; ResourceBundle rb = ResourceBundle.getBundle(init);/创建Statement初驶化commJDBC public commJDBC() try Class.forName(rb.getSt

28、ring(connJDBC.dbDriver).newInstance(); conn = DriverManager.getConnection(rb.getString(connJDBC.dbURL), rb.getString(connJDBC.dbUsername), rb.getString(connJDBC.dbPassword); stmt = conn.createStatement(); catch (Exception e) System.err.println(commJDBC初始化JDBC错误! ); ,/创建PreparedStatement初驶化commJDBC p

29、ublic commJDBC(String sql) try Class.forName(rb.getString(connJDBC.dbDriver).newInstance(); conn = DriverManager.getConnection(rb.getString(connJDBC.dbURL), rb.getString(connJDBC.dbUsername), rb.getString(connJDBC.dbPassword); prepareStatement(sql); catch (Exception e) System.err.println(commJDBC初始化

30、JDBC错误! ); ,public Connection getConnection() return conn; public void prepareStatement(String sql) throws SQLException prepstmt = conn.prepareStatement(sql); public PreparedStatement batchStatement(String sql) throws SQLException prepstmt = conn.prepareStatement(sql); return prepstmt; public void s

31、etString(int index, String value) throws SQLException prepstmt.setString(index, value); public void setInt(int index, int value) throws SQLException prepstmt.setInt(index, value); ,public void setBoolean(int index, boolean value) throws SQLException prepstmt.setBoolean(index, value); public void set

32、Long(int index, long value) throws SQLException prepstmt.setLong(index, value); public void setFloat(int index, float value) throws SQLException prepstmt.setFloat(index, value); public void setDate(int index, Date value) throws SQLException prepstmt.setDate(index, value); ,public void setBinaryStrea

33、m(int index, InputStream in, int length) throws SQLException prepstmt.setBinaryStream(index, in, length); public void setBytes(int index, byte value) throws SQLException prepstmt.setBytes(index, value); public void clearparameters() throws SQLException prepstmt.clearParameters(); public PreparedStat

34、ement getPrearedStatement() return prepstmt; public Statement getStatement() return stmt; ,/执行statement查询语句 public ResultSet executeQuery(String sql) throws SQLException if (stmt != null) return stmt.executeQuery(sql); else return null; /执行preparedStatement更新语句 public ResultSet executeQuery() throws

35、 SQLException if (prepstmt != null) return prepstmt.executeQuery(); else return null; ,/执行Statement更新语句 public void executeUpdate(String sql) throws SQLException if (stmt != null) stmt.executeUpdate(sql); /执行PreaparedStatement更新语句 public int executeUpdate() throws SQLException if (prepstmt != null)

36、return prepstmt.executeUpdate(); else return 0; ,/添加更新语句块 public void addBatch(String sql) throws SQLException prepstmt.addBatch(sql); /执行更新语句块 public int executeBatch() throws SQLException return prepstmt.executeBatch(); ,/关闭连接 public void closeDB() try if (stmt != null) stmt.close(); stmt = null;

37、if (prepstmt != null) prepstmt.close(); prepstmt = null; conn.close(); conn = null; catch (Exception e) System.err.println(commJDBC关闭数据库错误:); ,4。应用示例public class insertLawsinfo private final static String sql = insert into lawsinfo (title,content,issuetime,tag) values (?,?,?,?); private String msg =

38、 ; private String title = null; private String content = null; private String tag = null; private Date issuetime = new java.sql.Date(new java.util.Date().getTime(); public String getTitle() return title; public void setTitle(String title) this.title = title; public String getContent() return content

39、; public void setContent(String content) this.content = content; public String getTag() return tag; public void setTag(String tag) this.tag = tag; ,public String insertLawsinfo() commJDBC myconn = new commJDBC(sql); try myconn.setBytes(1, this.title.getBytes(GBK); myconn.setBytes(2, this.content.get

40、Bytes(GBK); myconn.setDate(3, this.issuetime); myconn.setString(4, tag); int uprnd = myconn.executeUpdate(); catch (Exception e) finally myconn.closeDB(); this.title = null; this.content = null; ,第四章 服务器的安装和配置4.1 Apache和tomcat的整合使用,1。Apache简介 Apache是一个历史悠久并且功能十分强大的WEB服务器。快速、可靠、可通过简单的API扩展,完全免费,完全源代码

41、开放。如果你需要创建一个每天有数百万人访问的Web服务器,Apache可能是最佳选择。Apache 起初由 Illinois 大学 Urbana-Champaign 的国家高级计算程序中心开发。此后,Apache 被开放源代码团体的成员不断的发展和加强。Apache 服务器拥有牢靠可信的美誉,已用在超过半数的因特网站中特别是几乎所有最热门和访问量最大的网站。开始,Apache只是Netscape网页服务器(现在是Sun ONE)之外的开放源代码选择。渐渐的,它开始在功能和速度超越其他的基于Unix的HTTP服务器。1996年4月以来,Apache一直是Internet上最流行的HTTP服务器:

42、 1999年5月它在 57% 的网页服务器上运行;到了2005年7月这个比例上升到了69%。http:/httpd.apache.org/download.cgi,2。Apache和tomcat的整合,修改Apache的conf/httpd.conf文件:步骤一:#LoadModule proxy_module modules/mod_proxy.so# LoadModule proxy_ajp_module modules/mod_proxy_ajp.so# LoadModule proxy_balancer_module modules/mod_proxy_balancer.so去掉前面的

43、#号。,步骤二:#Virtualhosts#Includeconf/extra/httpd-vhosts.conf 去掉第二句前面的#号。步骤三:ProxyPass/ajp:/127.0.0.1:8009/ProxyPassReverse/ajp:/127.0.0.1:8009/ 加在conf/httpd.conf文件末尾在conf/extra/httpd-vhosts.conf文件中,添加 :,ServerAdmin ProxyPass / ajp:/localhost:8009/ProxyPassReverse / ajp:/localhost:8009/ServerName localhostServerAlias 127.0.0.1,4.2 Tomcat的安全域,1。角色和用户 在conftomcat-users.xml中加入角色和用户2。设置安全约束在web.xml中加入。 在中指定受保护的Web资源以及所有可以访问该Web资源的角色,2。设置安全约束, 测试网站 Protected Area /admin/* /*.jsp webadmin,2。设置安全约束,在web.xml中加入指定验证类型(基本、摘要、表单)基本验证BASIC,2。设置安全约束,基本验证BASIC BASIC

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。