韩顺平servlet视频教程笔记(8讲)

韩顺平servlet视频教程笔记(8讲)
1.Tomcat的安装和使用
2.如何开发servlet
3.HttpServletRequest、HttpServletResponse
4.Cookie的原理和使用、HttpSession的原理和使用
5.Servletcontext的原理和使用
6.用户的增加、删除、修改
7.如何做一个网站计数器


第一讲:
1.完成一个用户管理系统来讲解Servlet,是一个纯servlet写的,很好的练习servlet技术的案例
项目有两类人员:管理员:可以对用户进行增加、删除、修改、查询
                  普通用户:可以查询用户
同时完成:分页、网站计数器、保存用户访问网站的习惯、网站用户发在线统计、追踪用户的来源

2.动态网页技术的发展
HTML:静态网页技术
cgi:早期的动态网页技术,效率比较低,现在主要用在linux/nnix操作系统中
asp:html+javascript+com组件。功能扩展比较困难,安全性比较低,实现企业级的功能困难。
Php:(php+mysql+linux+apache)跨平台性好,多种数据库支持,效率高,安全性好,免费使用。安装复杂、缺少企业级的支持
Jsp:(jsp=html+java片段+jsp语法+js)跨平台性好,多种开发工具支持,复杂度高,对机器配置要求高。

3.b/s与c/s的比较
b/s:开发成本低、管理维护简单、产品升级便利、使用方便。但是安全性不足
c/s:便于管理用户

4.Servlet介绍
用java语言编写,学习jsp的基础,功能强大,是由服务器调用和执行的
Servlet/jsp开发工具:
普通的文本编辑器:notepad,uedit32
继承开发工具:jcreateor,jbulider,eclipse,editplus,netbean
运行环境:
浏览器:绝大部分浏览器 IE、netscapse,firefox,Maxthon
Web服务器:Tomcat, Bea weblogic, Ibm websphere, Rsin
数据库:多数主流数据库

5.Tomcat的安装和介绍
Tomcat三个功能:1.web服务器 2.jsp容器 3.servlet的容器
下载tomcat,然后安装配置环境变量。
在环境变量添加如下:JAVA_HOME=你的jdk主目录
TOMCAT_HOME=你的Tomcat的主目录
注意:添加环境变量时,请注意字母的大小写。
启动:在Tomcat的bin目录下,双击startup.bat文件,也可以从所有程序中启动。
访问:在浏览器地址栏中输入:http://localhost:8080即可,能看到一个小猫就成功了。可以查看很多信息。


第二讲:
1.servlet的体系结构
javax.servlet.*;

2.servlet的网络拓扑结构
图片保存在桌面。


插入图片


3.servlet的几个实例
开发servlet有三种方法:实现servlet接口、继承GenericServet、继承HttpServlet
注意:使用eclipse开发非常容易,但是隐藏了太多的细节。为了交接servlet开发的底层机制和运行原理,先使用Jcreator开发,然后使用eclipse开发。

例一:实现servlet接口(引入servlet的生命周期)
servlet开发流程:
插入图片
1)在Tomcat\Webapps下建立WEB-INF文件夹,写一个文件(web.xml:该网站的配置信息,可以从别的目录下复制一个)建立一个classes的子文件夹,也可以从别的目录ROOT下复制
2)开发servlet(引入servlet-api.jar)
3) 部署你的servlet
   在web.xml文件中,添加如下代码:
4)启动Tomcat,访问你的servlet,在浏览器的地址栏中输入:http://127.0.0.1:8080/myWebsite/hello,回车就可以看到输出

插入图片

例二:通过继承GenericServlet开发servlet
通过GenericServlet开发,只需重写service方法,相对是简单的。同样实现一个hello,world的案例,注意两种方法的不同

例三:通过HttpServlet开发servlet
通过HttPServlet去开发servlet,需要重写doGet,doPost方法。这是目前使用最多的一种用法。同样实现一个hello,HttpServlet的程序。

表单调教数据get请求和post请求的区别
1.从安全性看get<post get提交的数据会在浏览器的地址栏显示
2.从提交的内容看get<post get提交的数据不恩呢个大于2K,二post提交的数据理论上不够限制,但是实际编程中建议不要大于64K。
3.从请求响应的速度看:get>post,get要求服务器立即处理请求,而post请求可能形成一个队列请求。

注意事项:如果你测试时不能输出而是出现这个错误,The requested resource (/HelloGeneric) is not available.那么去Http://localhost:8080,在这重载一下就可以了(reload)。
4.servlet的几个生命周期

5.一个简单的用户登录系统

第三讲:
1.同一个用户的不同页面如何共享数据
cookie(小甜饼)技术、sendRedirect()转向、隐藏表单提交、session技术
2.servlet中如何操作数据库
3.用户登录系统功能改进

什么是cookie:服务器在客户端保存用户的信息,比如登录名、密码等。这些信息数据量并不大,服务器端在需要的时候可以从客户端读取,一般保存在客户端的d:\Documents and Settings目录下,可以通过右边的图来理解。
cookie的用途:保存用户名、密码,在一定时间不用重新登录;记录用户的使用喜好(比如记录网页的背景颜色);网站的个性化,比如定制网站的服务和内容。

sendRedirect:sendRedirect("welcome?name=songshichao");
注意:优点是传送速度比较快,缺点是只能传送字符串,而不能传送一个对象。servlet url名和变量之间有?号;要传递两个以上的值,他们之间要用&号分开,如:
sendRedirect:sendRedirect("welcome?name=songshichao & pass=ok");
如果传递的是中文,你将得到乱码,需要处理一下。

隐藏表单
这是最常见的一种方式,也是最简单的,但是有时该技巧非常管用。
<form action=login>
<input type=hidden name=a value=b>
<input type=hidden name="+text+" value=c> (String text="abc")
</form>
使用的时候:String str=req.getParas(a);
通过隐藏表单也可以传递一些页面信息,比如用户名和密码。

session:当用户打开浏览器,访问某个网站时,服务器就会在服务器的内存为该浏览器分配一个空间,该空间被浏览器独占。这个空间就是session空间,该空间的数据默认存储30分钟,你也可以修改。
session用来做什么:
网上商城的购物车、
保存登录用户的信息、
将某些数据放入到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注意事项:
1.session中属性存在的默认时间是30min,可以修改这个时间(1.修改web.xml 2.在程序中去修改)
2.30分钟是用户的发呆时间,不是累计时间。
3.当某个浏览器访问某个网站时,服务器会分配一个唯一的session id,并以此来区分不同的浏览器
4.因为session的各个属性占用服务器的内存,所以软件公司都是在迫不得已的情况才使用。


Servlet中操作数据库
登录系统中,验证用户时,增加到数据库中验证用户的功能。
在servlet中和在java中操作数据库中式完全一样的。
特别要注意sql注入漏洞。

注意事项:
需要将连接数据库的3个jar包,拷贝到tomcat服务器
具体的有两种方法:
1)将.jar包拷贝到%tomcat%/commons/lib文件夹
2)或者在你的webapps目录的WEB-INF文件夹下建立一个lib文件夹,然后把三个jar包拷贝到Lib文件夹下

两种方法的区别:
第一种 所有 webapps都可以使用3个jar【公用lib库】
第二种 只有放入jar的那个webapps能使用jar【独用lib库】


servlet第四讲
1.如何在servlet中显示图片
2.分页技术讲解
3.用户登录系统功能改进


1.在servlet中显示图片
很简单。在你的webApps,建立一个文件夹,比如imags,然后将图片拷贝到文件夹下,在servlet中添加:<img src="/imgs/wang.jpg"/>即可。
应用实例:在welcome页面显示左边的图片。

2.分页技术
分页技术是任何一个网站都要使用的技术。因此学习B/S开发一定要学会分页技术。
分页方法:
分页的算法:先要定义四个变量,有各自的用途
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 users where userId between 3 and 5;
改进:select top 3 * from users where userId not in(select top 3 userId from users)

增加分页显示用户信息。

插入图片

分页方法(测试效率)
当表的记录超过100万条记录时,它的反也就很慢,原因是它查询的结果是整张表。实际的项目中,这种问题很常见。
为了说明问题,我们可以做一个实验,将表的记录增加到100万,看看会有怎么样的情况发生。
增加表的记录的语句是:insert into 表名(字段1,2...)select 字段1,2...from 表名
增加完后可以测试一下。


第五讲 Cookie
1.Cookie的讲解和使用
1)CooKie有点象一张表,分两列,一个是名字,一个是值,数据类型都是String
2) 如何创建一个Cookie(在服务器创建的)
   Cookie c=new Cookie(String name,String val);
3) 如何将一个Cookie添加到客户端
   response.addCookie(c);
4)如何读取Cookie(从客户端读到服务器)
   request.getCookies();


Cookie的其它说明
1.可以通过IE-工具-internet选项-隐私-高级来启用或是禁用cookie
2.由于cookie的信息是保存在客户端的,因此安全性不高
3.cookie信息的声明周期可以在创建时设置。从创建的那刻起,就开始计时,到时该cookie就无效了。
4.关于cookie其它知识,以后讲,因为cookie对b/s编程时非常重要的。

实例讲解:保存用户名和密码,一定时间内不用重新登录


2.Cookie和Session的比较
存在的位置:Cookie保存在客户端,Session保存在服务器端
安全性:Session强于Cookie
网络传输量:Cookie通过网络在客户端和服务器端传输,而Session不需要传输
生命周期:cookie的生命周期是累计的,从创建开始就开始计时,20分钟后生命周期结束;Session的生命周期是间隔的,从创建开始计时如果在20分钟,没有访问Session,那么Session信息失效。
关机会造成Session的生命周期结束,但是对Cookie没有任何影响

3.网站框架的改进
1)将界面和业务逻辑放在一起(model1模式)在LoginIn.java文件和Welcome.java文件中都去操作了数据库,他们的逻辑相似,有重复代码
2)没有清晰地层次关系,显得很乱
3)代码一点也不优雅,可读性差,可维护性差。

改进:1.进行分层:将model1模式改为mv模式;2.将常用代码,比如连接数据库,封装到类中。

4.用户登录系统功能改进


Servlet第六讲
1.ServletContext的讲解和使用
2.Servlet操作文件
3.增加网站计数器

1.ServletContext的讲解和使用
把ServletContext和Cookie、Session做比较。把它想象成一个公用的空间,可以被所有的客户访问(类似于.net中的Application)
2.使用ServletContext   1)如何得到ServletContext实例 this.getServletContext();   2)可以把它想象成一张表,和Session相似,每一行就是一个属性 添加属性:setAttribute(String name,Object ob);   得到值:getAttribute(String name) 返回Object   删除属性: removeAttribute(String name);
3.生命周期 ServletContext的生命周期从创建开始,到服务器关闭而结束。
4.注意事项:存在ServletContext中的数据会长时间保存在服务器,会占用内存。建议不要向ServletContext中添加过大的数据。


Servlet中操作文件:Servlet就是一个java文件,所以和JAVA操作文件和普通Java文件一样。

使用ServletContext实例
在网站开发中,很多功能需要使用ServletContext,比如:网站计数器、网站在线用户提示、简单的聊天系统
总之,如果涉及到不同用户共享数据,而这些数据量不是很大,同时又不希望写入到数据库中,我们就可以使用Servletcontext来实现。

网站计数器:统计网页被点击的次数
怎么叫有效点击率,不同网站不同:
1.只要访问过该网页,就算是一次,刷新一次也算。
2.不同的ip访问该页面,算一次有效点击(同一个IP在一天内算一次)
3.用户推出网站,再次访问也算一次

实现网站计数器,有以下几种方案:
1.当某个用户访问该网页时,就在数据库中增加一次(比如有张统计表)
2.设置一个静态变量,当服务器启动时,可以通过文件或者表初始化该变量,当服务器关闭时,将变量的值写入文件或数据库中
3.使用ServletContext,实现和第二种相似,我们重点讲解。
可以在init()方法中初始化servletcontext中属性times对应的初始值。可以在destory()方法中,一次性的将servletcontext中属性times对应的值,写入文件中,这样就可以减少对文件的操作。

总结:使用servletcontext,理解servlet的生命周期,增加网站计数器、显示用户的IP、主机名信息。


第七讲
一 美化管理系统界面,完善页面,这个参考.doc文档进行
   给大家推荐两个常用软件:一个是得到颜色配置的软件(playcolor);另一个是制作网页logo的软件(photoshop、Logo制作工具)


二 管理系统功能改进
   增加对用户的查找、增加、删除和修改的功能,这样我们这个用户登录系统就成了一个用户管理系统,而且是完全用servlet实现的。颜色交替、增加用户头像、指定跳转到某页(需要对servlet和html表单提交原理清楚)、

第八讲
tomcat的配置
1.如何修改tomcat的端口(1~65535 1-1024端口被使用了。命令行中输入 netstat -an 可以查看正在运行的端口)
某些情况下,可能需要修改tomcat监听的端口8080,比如:需要启动两份tomcat服务器、某个服务占用了8080端口
修改tomcat的端口的方法:修改tomcat/conf/server.xml文件中的port=8080数据修改成你要的端口号即可。

2.如何设置虚拟目录
我们网站站点都是放在默认的目录下tomcat/webapps下,但是某些情况下,可能需要把站点放在别的目录下,比如:tomcat的磁盘空间不够了、为了统一管理,放在某个特定的目录下。
打开tomcat安装目录下的conf子目录,修改其中的server.xml文件,在适当的位置添加如下信息:<Context path="/yoursite(你的站点名,就是主文件名)" docBase="c:\mysite(站点存放的磁盘目录)" debug="0"/>

3.如何给tomcat的管理员设置密码
在tomcat安装的目录下的tomcat-users.xml文件中可以给管理员设置密码,密码设置,可以防止非法用户远程登录到tomcat.
在tomcat-users.xml文件的适当位置,给管理员设置密码。
<user username="songshichao" password="1988529" roles="admin,manager"/>
在默认情况下,管理员的密码是空密码,不法分子可能远程发布一个站点,并在某个servlet中加入一些可怕的语句(比如重启、关机)
利用密码为空搞破坏过程:
插入图片。。。。。。。。。。。。。。。。。


4.如何设置数据源和连接池
原理图:

两种方法配置:通过修改%tomcat_home%/conf/server.xml文件,指定的位置添加如下代码即可。
代码如图片所示:

通过tomcat管理界面来配置:在登录界面的第二个,不过需要自己下载安装,默认是不安装的。

如何使用:添加两个包:import javax.sql.*; import javax.naming.*;
插入图片

public Connection getConn()
{
   try{
    //创建一个上下文环境
    Context con=new javax.naming.InitialContext();
   
    //通过con得到数据源
    DataSouce ds=(DataSource)con.lookup("java:comp/env/shunping");
   
    ct=ds.getConnection();
   
    System.out.println("使用连接池方式");
   
   }catch(Exception e){
    e.printStackTrace();
   }
  
   return con;
}


JSP内容介绍(14讲)
1.Jsp版本的用户管理系统
2.网上商城
3.仿百度查询系统
4.留言本

包含的知识点有:
1.eclipse+myeclipse的安装和使用
2.Jsp的基本语法
3.jsp的就打内置对象
4.html
5.javascript
6.javamail技术
7.jsp标签、自定义标签
8.mysql数据库的安装和使用

转载于:https://www.cnblogs.com/ye50223587/archive/2011/07/23/2114659.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值