韩顺平servlet笔记完整代码.docx

上传人:b****5 文档编号:5688178 上传时间:2022-12-31 格式:DOCX 页数:117 大小:3.27MB
下载 相关 举报
韩顺平servlet笔记完整代码.docx_第1页
第1页 / 共117页
韩顺平servlet笔记完整代码.docx_第2页
第2页 / 共117页
韩顺平servlet笔记完整代码.docx_第3页
第3页 / 共117页
韩顺平servlet笔记完整代码.docx_第4页
第4页 / 共117页
韩顺平servlet笔记完整代码.docx_第5页
第5页 / 共117页
点击查看更多>>
下载资源
资源描述

韩顺平servlet笔记完整代码.docx

《韩顺平servlet笔记完整代码.docx》由会员分享,可在线阅读,更多相关《韩顺平servlet笔记完整代码.docx(117页珍藏版)》请在冰豆网上搜索。

韩顺平servlet笔记完整代码.docx

韩顺平servlet笔记完整代码

一、前序工作2

二、Classes文件写一个Hello.java2

写java文件2

配置web.xml文件3

上网验证4

三、写登陆界面4

写java文件5

配置web.xml文件7

上网验证7

四、同一用户的不同页面共享数据8

用sendRedirct()方法实现8

用隐藏表单实现11

Session11

五、Servlet链接数据库13

建数据库的表13

写java文件13

放jar包16

Sql注入漏洞16

六、Servlet中显示图片18

七、分页技术19

八、cookie24

使用cookie保存用户名,密码,在一定时间不用重复登陆24

删除cookie29

九、网站框架30

十、ServletContext38

网站计数器39

优化40

用户ip地址42

十一、界面美化42

十二、tomcat配置59

如何修改tomcat端口59

如何设置虚拟目录60

如何给tomcat的管理员设置密码61

如何设置数据源和连接池62

附录63

Jcreator不能导入javax.servlet包问题63

本文数据库数据库64

本文Web.xml文件配置64

一、前序工作

Tomcat安装好后

再webapps文件夹下新建mywebsite,里面包括WEB-INF,在里面是classes,lib和web.xml文件。

Jcreator配置好jdk路径后servlet也需要导入,configure—>options—>jdkprofile,选中jdkvension,点edit—>addaddachieve,选择tomcat里lib下的servlet-api,就ok了。

详细看附录。

二、Classes文件写一个Hello.java

写java文件

有三种方法:

/*使用实现servlet接口的方式开发(不全)

packagecom.tsinghua;//一个自定义的包

importjavax.servlet.*;

importjava.io.*;

importjava.io.IoException;

publicclassHelloimplementsServlet{

//该函数用于初始化servlet(类似与构造函数)

//该函数只会被调用一次

publicvoidinit(ServletConfigparml)throwsServletException{

System.out.println("initit");

}

publicServletConfiggetServletConfig(){

returnnull;

}

//这个函数用于处理业务逻辑

//程序员应该把业务逻辑代码写这里

//这个函数当用户每访问servlet时,都会被调用

//req:

用于获得客户端(浏览器)信息res:

用于向客户端(浏览器)返回信息

publicvoidservice(ServletRequestreq,ServletResponseres)throwsServletException{

System.out.println("serviceit");

//从res中得到printWriter

PrintWriterpw=res.getWriter();

pw.println("hello,world");

}

publicvoiddestroy(){

}

}

//方法二,继承GenericServlet(不全)

packagecom.tsinghua;

importjavax.servlet.GenericServlet;

importjavax.servlet.*;

importjava.io.*;

publicclassHelloGenenextendsGenericServlet{

//重写service方法

publicvoidservice(ServletRequestreq,ServletResponseres){

//返回hello,world

try{

PrintWriterpw=res.getWriter();

pw.println("hello,world,generc");

}

catch(Exceptionex){

ex.printStackTrace();

}

}

}

*/

//方法三,继承HttpServlet开发

packagecom.tsinghua;

importjavax.servlet.http.*;

importjava.io.*;

publicclassHelloextendsHttpServlet{

//处理get请求

publicvoiddoGet(HttpServletRequestreq,HttpServletResponseres){

//业务逻辑

try

{

PrintWriterpw=res.getWriter();

pw.println("hellohttp");

}

catch(Exceptionex){

ex.printStackTrace();

}

}

publicvoiddoPost(HttpServletRequestreq,HttpServletResponseres){

this.doGet(req,res);

}

}

配置web.xml文件

这个web.xml文件可以从旁边文件夹里拷来,主要改写的部分如下

hello

com.tsinghua.Hello

--DefinetheManagerServletMapping-->

hello

/hello

上网验证

先打开apache-tomcat-8.5.8\bin下的startup.bat,然后登陆下面地址,看manager里有没有mywebsite,若runing是true则ok

再登陆下面地址看看是否成功

显示了hello,成功了

三、写登陆界面

Login.java登陆界面

Welcome欢迎界面

LoginCl验证用户

写java文件

登陆界面包含三个java文件,用sendRedirect进行跳转,其中还包括了html语言,表单知识,详细看下面

Login.java

/**

*@(#)Login.java

*

*

*@author

*@version1.002017/2/10

*/

//登陆界面

packagecom.tsinghua;

importjavax.servlet.http.*;

importjava.io.*;

publicclassLoginextendsHttpServlet{

publicLogin(){

}

//处理get请求

publicvoiddoGet(HttpServletRequestreq,HttpServletResponseres){

//业务逻辑

try

{

//中文乱码解决方法

res.setContentType("text/html;charset=gbk");

PrintWriterpw=res.getWriter();

//返回登陆界面

pw.println("");

pw.println("");

pw.println("

登陆界面

");

pw.println("");

pw.println("用户名:


");

pw.println("密码:


");

pw.println("
");

pw.println("

");

pw.println("");

pw.println("");

}

catch(Exceptionex){

ex.printStackTrace();

}

}

publicvoiddoPost(HttpServletRequestreq,HttpServletResponseres){

this.doGet(req,res);

}

}

LoginCl.java

/**

*@(#)Login.java

*

*

*@author

*@version1.002017/2/10

*/

//验证(登陆处理)

packagecom.tsinghua;

importjavax.servlet.http.*;

importjava.io.*;

publicclassLoginClextendsHttpServlet{

publicLoginCl(){

}

//处理get请求

publicvoiddoGet(HttpServletRequestreq,HttpServletResponseres){

//业务逻辑

try

{

//接受用户名和密码

Stringu=req.getParameter("usrname");

Stringp=req.getParameter("passwd");

//验证

if(u.equals("sp")&&p.equals("123")){

//合法

//跳转(welcome)

res.sendRedirect("welcome");

}else{

//不合法

//跳转(回原界面)

res.sendRedirect("login");//写url

}

}

catch(Exceptionex){

ex.printStackTrace();

}

}

publicvoiddoPost(HttpServletRequestreq,HttpServletResponseres){

this.doGet(req,res);

}

}

Welcome.java

/**

*@(#)Welcome.java

*

*

*@author

*@version1.002017/2/10

*/

//欢迎界面

packagecom.tsinghua;

importjavax.servlet.http.*;

importjava.io.*;

publicclassWelcomeextendsHttpServlet{

publicWelcome(){

}

//处理get请求

publicvoiddoGet(HttpServletRequestreq,HttpServletResponseres){

//业务逻辑

try

{

//输出weclcome

PrintWriterpw=res.getWriter();

pw.println("welcome");

}

catch(Exceptionex){

ex.printStackTrace();

}

}

publicvoiddoPost(HttpServletRequestreq,HttpServletResponseres){

this.doGet(req,res);

}

}

 

配置web.xml文件

再之前的web.xml文件里增加如下

login

com.tsinghua.Login

--DefinetheManagerServletMapping-->

login

/login

 

logincl

com.tsinghua.LoginCl

--DefinetheManagerServletMapping-->

logincl

/logincl

 

welcome

com.tsinghua.Welcome

--DefinetheManagerServletMapping-->

welcome

/welcome

上网验证

登陆下面地址,看manager里有没有mywebsite,若runing是true则ok

 

四、同一用户的不同页面共享数据

用sendRedirct()方法实现

实现在welcome界面显示登录用户的姓名

以上三个java文件中LoginCl和Welcome文件进行修改

LoginCl.java

Welcome

实现在welcome界面显示登录用户的姓名和密码

以上三个java文件中LoginCl和Welcome文件进行修改

LoginCl

Welcome

结果图:

隐藏数据:

用隐藏表单实现

Session

Session:

浏览器访问服务器时,服务器内存为浏览器分配的空间。

Session

名字String

值Object

用session防止用户非法登陆到某个页面,这里防止直接登陆欢迎界面

以上三个java文件中LoginCl和Welcome文件进行修改

LoginCl

Welcome

网页:

输入welcome重新跳回登入界面

正确输入后:

五、Servlet链接数据库

建数据库的表

写java文件

Login

/**

*@(#)Login.java

*

*

*@author

*@version1.002017/2/10

*/

//登陆界面

packagecom.tsinghua;

importjavax.servlet.http.*;

importjava.io.*;

publicclassLoginextendsHttpServlet{

publicLogin(){

}

//处理get请求

publicvoiddoGet(HttpServletRequestreq,HttpServletResponseres){

//业务逻辑

try

{

//中文乱码解决方法

res.setContentType("text/html;charset=gbk");

PrintWriterpw=res.getWriter();

//返回登陆界面

pw.println("");

pw.println("");

pw.println("

登陆界面

");

pw.println("");

pw.println("用户名:


");

pw.println("密码:


");

pw.println("
");

pw.println("");

pw.println("");

pw.println("");

}

catch(Exceptionex){

ex.printStackTrace();

}

}

publicvoiddoPost(HttpServletRequestreq,HttpServletResponseres){

this.doGet(req,res);

}

}

LoginCl

/**

*@(#)Login.java

*

*

*@author

*@version1.002017/2/10

*/

//验证(登陆处理)

packagecom.tsinghua;

importjavax.servlet.http.*;

importjava.io.*;

importjava.sql.*;

publicclassLoginClextendsHttpServlet{

publicLoginCl(){

}

//处理get请求

publicvoiddoGet(HttpServletRequestreq,HttpServletResponseres){

//业务逻辑

Connectionct=null;

Statementsm=null;

ResultSetrs=null;

try

{

//接受用户名和密码

Stringu=req.getParameter("usrname");

Stringp=req.getParameter("password");

//链接数据库,加载驱动

Class.forName("com.mysql.jdbc.Driver");

//得到链接

ct=DriverManager.getConnection("jdbc:

mysql:

//localhost:

3306/xcdb?

useUnicode=true&characterEncoding=gbk","root","gu123");

//创建Statement

sm=ct.createStatement();

rs=sm.executeQuery("select*fromuserwhereusername='"+u+"'andpassword='"+p+"'");

//验证

if(rs.next()){

//合法

//将验证成功的信息,写入session

//1表示得到session

HttpSessionhs=req.getSession(true);

//修改session的存在时间,设为20秒

hs.setMaxInactiveInterval(20);

//把信息放session

hs.setAttribute("pass","ok");

//跳转(welcome)

res.sendRedirect("welcome?

uname="+u+"&upassword="+p);

}else{

//不合法

//跳转(回原界面)

res.sendRedirect("login");//写url

}

}

catch(Exceptionex){

ex.printStackTrace();

}finally{

try{

if(rs!

=null){

rs.close();

}

if(sm!

=null){

sm.close();

}

if(ct!

=null){

ct.close();

}

}

catch(Exceptionex){

ex.printStackTrace();

}

}

}

publicvoiddoPost(HttpServletRequestreq,HttpServletResponseres){

this.doGet(req,res);

}

}

Welcome

/**

*@(#)Welcome.java

*

*

*@author

*@version1.002017/2/10

*/

//欢迎界面

packagecom.tsinghua;

importjavax.servlet.http.*;

importjava.io.*;

publicclassWelcomeextendsHttpServlet{

publicWelcome(){

}

//处理get请求

publicvoiddoGet(HttpServletRequestreq,HttpServletResponseres){

//业务逻辑

try

{

//得到session

HttpSessionhs=req.getSession(true);

Stringval=(String)hs.getAttribute("pass");

//判断是否非法登陆

if(val==null){

try{

//非法登陆

res.sendRedirect("login");

}catch(Exceptionex){

ex.printStackTrace();

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 从业资格考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1