设为首页 收藏本站
查看: 1430|回复: 0

[经验分享] 韩顺平servlet视频教程笔记(8讲)

[复制链接]

尚未签到

发表于 2017-2-19 12:30:29 | 显示全部楼层 |阅读模式
  韩顺平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数据库的安装和使用

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-344250-1-1.html 上篇帖子: 如何成为J2EE高手 下篇帖子: E-Business Suite Technology-Related Sessions at OpenWorld 2011
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表