昨天六一儿童节正好碰上大四毕业巡礼 不少学姐拍毕业照 穿和服 哈哈 (真想加个表情 可惜没有... 这个功能头条要改进啊!) 唉! 该走的终究会走 开始聊正事

昨天告诉大家要做好准备了 看本文章请先阅读这里:小白教你做网站之ASP篇 抢先看

今天给大家讲解JSP后台处理的详细过程 直接上图

运行过的同学应该都知道 网站是从这里开始运行的 我们就从这里开始讲

怎么创建一个jsp项目(小白教你做网站)(1)

其中 这四行语句是用来获取Session参数的

怎么创建一个jsp项目(小白教你做网站)(2)

什么是Session呢? 这里应该好好讲解一下

JSP有以下四个内置对象

怎么创建一个jsp项目(小白教你做网站)(3)

你可以这样理解 它们四个是用来携带信息的 比如:你登录后你的用户名得记下来吧 要不欢迎界面怎么知道你是谁? 还有很多重要信息需要它们来传递 它们的生命周期是不同的

其中application的生命周期最长 它会一直活到服务器关闭 只要你服务器不关它就不会死 你说变态不?

其他两个 上图有详细的解释 都不难理解 而session在当前会话有效 意思就是只要你浏览器不关 它就一直活着 (前提服务器不关) 现在你们肯定觉得很抽象 后面你们就会慢慢明白了

程序继续执行 上边分别把叫n和N的session赋值给字符串类型的n和N

怎么创建一个jsp项目(小白教你做网站)(4)

然后 判断他们是否存在 这几句的意思是 如果n不等于null(null就是不存在的意思)就跳转到yonghuok.jsp这个页面去 这个页面就在WebContent这个文件夹里 然后终止程序

怎么创建一个jsp项目(小白教你做网站)(5)

如果n不存在就继续执行 判断N是否存在 功能类似 如果存在就跳转到ok.jsp 终止程序 如果这两个都不存在就执行 下面那两句 意思是:创建一个叫pifu的session 内容是css/main.css 下一句:跳转到login.jsp

好现在整体解释一下 这个n的内容其实就是普通用户登录成功后保存的用户名 N的内容就是管理员登录成功保存的用户名 yonghuok.jsp就是普通用户的欢迎界面 ok是管理员的欢迎界面 意思就是:上来先看你名字是用n还是N带过来的 如果你是n带过来的 好 你是用户 转到用户界面 N带来的就是管理员 什么都没有就是未登录 领个皮肤乖乖去登录 走你 这个皮肤就是CSS的路径(CSS是管外部美观的) 每个页面都是靠获取名叫pifu的这个session来获取的 默认是没有的 如果你不从这个界面开始执行就会出现这种情况

怎么创建一个jsp项目(小白教你做网站)(6)

是不是没法看了 其实有时你百度的时候也会出现这种情况 加上皮肤是这个样子的

怎么创建一个jsp项目(小白教你做网站)(7)

是在这里接收皮肤的(每个登录后的页面都有)

怎么创建一个jsp项目(小白教你做网站)(8)

首次打开就是未登录 所以乖乖去登录吧!

这里为了解释代码 所以从注册开始

怎么创建一个jsp项目(小白教你做网站)(9)

你发现有的信息不填或格式不对是不能注册的 这是前台JavaScript做的 是一层保护 因为不能什么东西都往数据库里填吧! 这里不再详述 简单解释一下 这是一层很弱的保护 因为你可以在浏览器的设置里禁用JavaScript

怎么创建一个jsp项目(小白教你做网站)(10)

但是你禁用以后 你会发现你连qq空间都进不去了

怎么创建一个jsp项目(小白教你做网站)(11)

言归正传 你看login.jsp源代码第65行 刚才你点的那个注册按钮其实是一个超链接 一点就跳转到zhuce.jsp了

怎么创建一个jsp项目(小白教你做网站)(12)

再来到zhuce.jsp 别看内容很多 一折叠就剩这一点

怎么创建一个jsp项目(小白教你做网站)(13)

这是一个表单 蓝色部分action的意思是提交后交给Shouye(就是咱们一开始执行的那个) 后边method是提交方式是post (一会你就明白了)

怎么创建一个jsp项目(小白教你做网站)(14)

每个控件都有一个name 下边这一部分:第一行type表示类型 hidden是隐藏域 (就是页面里不显示但存有数据)第一行的意思是这是一个隐藏域 名字叫key 内容是insert

怎么创建一个jsp项目(小白教你做网站)(15)

第二行:submit是提交按钮 点击后会把表单里的所以name和对应的value都提交的表单头里的位置(这个界面是提交到Shouye里的)

第三行:reset是重置按钮 点击后会把表单里已填的内容全部清空回到初始状态

第四行:还是一个超链接 还是跳转到Shouye 因为没有登录session不存在 还会跳的login.jsp

这里点击注册后会提交到Shouye 所以我们再回到Shouye来看 因为上边写的是post提交方式

所以会执行doPost这个方法

怎么创建一个jsp项目(小白教你做网站)(16)

怎么创建一个jsp项目(小白教你做网站)(17)

你会发现里边有两个if 其实就相当于两把锁 然后通过刚才传过来的那个key(隐藏域里的)相当于用钥匙来试锁 刚才我们传过来那个key的内容是insert 所以会执行下图所示区域的代码

怎么创建一个jsp项目(小白教你做网站)(18)

就是先把传过来的值都保存下来 然后判断其中三个(id name和pass)是不是空的 如果不是空的执行下边的代码 你会发现会调用Userbean里的insert_xinxi和insert方法 要用这些方法就得导入这个类

开头已经导入了

怎么创建一个jsp项目(小白教你做网站)(19)

然后我们去看lr.bean.Userbean 就在这里

怎么创建一个jsp项目(小白教你做网站)(20)

我们之前说过 这个文件夹下的程序是用来连接数据库来操作数据的

怎么创建一个jsp项目(小白教你做网站)(21)

这四句就是要连接数据库的信息 都是固定的 其中第一句在这里

怎么创建一个jsp项目(小白教你做网站)(22)

怎么创建一个jsp项目(小白教你做网站)(23)

第二句在这里 唉 我找不到了... 不过不要紧你可以去百度

为什么要讲这两个呢 直接记住不就完了? 因为用的数据库软件可能不一样 对应的这两条信息也不一样 而且之前导入那个jar包也是 例如:如果用的是sql server 就需要导入其他包 这四条信息也要换

回到程序继续讲 u和p分别对应你MySQL里的连接名和密码 在这里

怎么创建一个jsp项目(小白教你做网站)(24)

继续看下边 你会发现有很多方法 折叠后还有这么多

怎么创建一个jsp项目(小白教你做网站)(25)

我们第一个调用的是这个方法

怎么创建一个jsp项目(小白教你做网站)(26)

上边是传来的参数 这两句就是我们之前定义的连接信息

怎么创建一个jsp项目(小白教你做网站)(27)

这是一条sql语句 意思就是向xinxi这个表里插入信息 有人会问后边一堆问号什么意思?

怎么创建一个jsp项目(小白教你做网站)(28)

下边给出了 传给第一个“?” name 第二个是id 以此类推...

怎么创建一个jsp项目(小白教你做网站)(29)

然后 执行sql语句 上边定义i初始为0 但是如果执行成功 i 的值肯定大于0 然后返回 i的值

怎么创建一个jsp项目(小白教你做网站)(30)

下一个方法也是类似 只是参数和名字不一样 这里不再详述

怎么创建一个jsp项目(小白教你做网站)(31)

然后我们继续看Shouye这里

怎么创建一个jsp项目(小白教你做网站)(32)

这下应该明白了吧 i和j就是刚才调用那两个方法的返回值 如果都大于0就说明执行sql语句成功了吧

然后跳转到zhuceok.jsp 这个界面里就一句 一个超链接 点击后跳转到 Userservlet

怎么创建一个jsp项目(小白教你做网站)(33)

其实这里应该改成让它跳转到Shouye的 因为你会发现Userservlet里又是一大堆锁 当它没有获取到session的时候没有默认跳转到login.jsp(就是登录界面)那里 但是我们执行的时候 确实又跳转到了登录界面 这是什么原因呢? 这是我们的过滤器就该闪亮登场了

怎么创建一个jsp项目(小白教你做网站)(34)

我们之前说的 filter里放的是过滤器 当时都不知道是干什么用的

打开叫Three的过滤器 你发现它也是一个Java程序

怎么创建一个jsp项目(小白教你做网站)(35)

这一句表示 哪些页面需要过滤

怎么创建一个jsp项目(小白教你做网站)(36)

Userservlet在里边吧 然后内容还是相似 如果N和n都不存在 就跳转到login

怎么创建一个jsp项目(小白教你做网站)(37)

这个问题 其实不算个问题 因为那个Shouye是我后来加的 有的地方没改 当时我测试的时候也没发现

直到今天给你们细讲的时候才发现 哈哈!

这四个过滤器 建议大家好好看看

怎么创建一个jsp项目(小白教你做网站)(38)

第一个是用来转码的 否则汉字会出现乱码

第二个控制 只有session N存在时才能访问这些界面(就是管理员登录)

第三个刚才看过了 是用户和管理员通用的页面

第四个就是只有用户才能访问的页面

好 注册我们讲完了 下面来讲登录 还回到login.jsp页面

怎么创建一个jsp项目(小白教你做网站)(39)

你会发现 又是一个表单 提交到Shouye 提交方式是post 看到这个 你们应该马上就知道了 应该去执行Shouye里的doPost方法 登录按钮是submit 隐藏域里藏的钥匙key是select

好了 这就清楚了 来看Shouye吧 一看提交方式是post 钥匙是select 所以应该开这把锁吧

怎么创建一个jsp项目(小白教你做网站)(40)

开开之后 还是老一套 把表单里的内容取出来 判断是不是空的 然后调用Userbean里的select方法

来到Userbean 你会看到两个select方法 调用那个呢? 看参数 这里调用的是两个参数的 而且返回值也不一样 就是这个方法

怎么创建一个jsp项目(小白教你做网站)(41)

还是老一套 连接数据库 传个参数 执行sql语句 都一样 不过这里注意

怎么创建一个jsp项目(小白教你做网站)(42)

执行sql语句后它返回了一个数组 它取了数组里的permissin这个字段

因为sql语句是在user表里做查询 找到name=传来的name pass=传来的pass 这些字段组成一个数组rs 因为user里只有三个字段 所以这里rs数组的内容是['name' 'pass' 'permissin']

怎么创建一个jsp项目(小白教你做网站)(43)

通俗的说 就是去表里查名字叫? 密码是?? (?就是传来的name ??就是传来的pass) 为什么要指定密码呢 直接查名字不就行了? 因为这是登录啊! 大哥! 不查密码怎么知道你密码对不对 就跟别人知道你QQ好就能上你QQ 那还了得? 所以查到了说明用户名对了 密码也对了 查不到说明有一个错了 然后把第三个字段的值(就是身份值)返回

继续看Shouye的那把锁

怎么创建一个jsp项目(小白教你做网站)(44)

首先判断传回来那个身份是不是空的 如果是 说明没查到结果 那还说什么 直接走你 登录失败;

如果不是空的说明查到了 有这个人 而且密码是对的 再来判断是管理员啊还是用户啊 如果是管理员 就创建一个session N(注意!session就是从这里创建的)里边放你的名字 跳转到ok页面 如果不是管理员 那就是用户 创建个session n 放入你的名字 去yonghuok页面 现在大家应该明白 一开始获取的session N和n是从哪来的了吧!

额 讲了这么多 不知道你们理解没有 其实讲完第一个注册功能 你们就应该能明白整个流程了 你会发现注册和登录有很多地方是一样一样的 无非一个是插入 一个查找

后面的功能实现方法都是类似的 大家举一反三 按照这个流程走一遍就都明白了

咱们具体来两个例子

来看ok页面

怎么创建一个jsp项目(小白教你做网站)(45)

一看到<a> 就知道是个超链接 跳转到Newservlet页面 ?后边是传的参数 key就是上边说的钥匙 select是key的值

这里你们记住 只要不是form表单 并且通过post提交的 都是要调用doGet方法的!!! 就是这个

怎么创建一个jsp项目(小白教你做网站)(46)

好了 该讲的都讲完了 还是看大家的理解了 反正这个流程就是重复重复再重复的 再讲也没有什么什么意义了 JSP的课程就讲到这里了 后边可能会有续集 因为有些同学可能有地方不明白 不过这也得看你们的回复来决定了...

还有就是 下面我会开始讲ASP.NET 跟JSP类似 只不过它是用C#做后台处理的 昨天说了

然后它比JSP更简单 所有东西都是通过鼠标点击拖动的 几乎不用怎么写代码 (但是ASP貌似没多少人用 不知道为什么)

这里先给你们 ASP的开发工具吧 http:///s/1gfx0Rxp

下载好后执行这个程序安装

怎么创建一个jsp项目(小白教你做网站)(47)

这是微软的开发工具 自带一大堆插件 没办法谁让人家是微软呢 系统都是人家的...

总之 建议大家先学习JSP 学会之后你会发现其他的ASP啊 PHP啊什么的都不是事

这里先给大家透漏一下后续课程吧 学完ASP后 我们将会开始学习PHP 这是目前比较火的语言 一门独立的网站编程语言 有集成的开发环境 从我学的课程学时中也能看出来对它的重视!

篇幅较长 一天内完成 有个别错字请见谅!

今天就说到这吧 有问题记得给我留言哦! 再见!!!

,