昨天见告大家要做好准备了 看本文章请先阅读这里:小白教你做网站之ASP篇 抢先看
本日给大家讲解JSP后台处理的详细过程 直接上图
运行过的同学该当都知道 网站是从这里开始运行的 我们就从这里开始讲
首先 点一下上边绿色的按钮 eclipse会带动我们配置好的阿帕奇做事器开启 然后会从当前这个叫Shouye.java的Java程序开始实行 这个程序有两个方法(也便是函数) 分别处理按不同办法发送过来的要求 由于是第一次实行 以是默认实行doGet这个方法 也便是下图蓝色区域
个中 这四行语句是用来获取Session参数的
什么是Session呢? 这里该当好好讲解一下
JSP有以下四个内置工具
你可以这样理解 它们四个是用来携带信息的 比如:你登录后你的用户名得记下来吧 要不欢迎界面怎么知道你是谁? 还有很多主要信息须要它们来通报 它们的生命周期是不同的
个中application的生命周期最长 它会一贯活到做事器关闭 只要你做事器不关它就不会去世 你说变态不?
其他两个 上图有详细的阐明 都不难明得 而session在当前会话有效 意思便是只要你浏览器不关 它就一贯活着 (条件做事器不关) 现在你们肯定以为很抽象 后面你们就会逐步明白了
程序连续实行 上边分别把叫n和N的session赋值给字符串类型的n和N
然后 判断他们是否存在 这几句的意思是 如果n不即是null(null便是不存在的意思)就跳转到yonghuok.jsp这个页面去 这个页面就在WebContent这个文件夹里 然后终止程序
如果n不存在就连续实行 判断N是否存在 功能类似 如果存在就跳转到ok.jsp 终止程序 如果这两个都不存在就实行 下面那两句 意思是:创建一个叫pifu的session 内容是css/main.css 下一句:跳转到login.jsp
好现在整体阐明一下 这个n的内容实在便是普通用户登录成功后保存的用户名 N的内容便是管理员登录成功保存的用户名 yonghuok.jsp便是普通用户的欢迎界面 ok是管理员的欢迎界面 意思便是:上来先看你名字是用n还是N带过来的 如果你是n带过来的 好 你是用户 转到用户界面 N带来的便是管理员 什么都没有便是未登录 领个皮肤乖乖去登录 走你 这个皮肤便是CSS的路径(CSS是管外部都雅的) 每个页面都是靠获取名叫pifu的这个session来获取的 默认是没有的 如果你不从这个界面开始实行就会涌现这种情形
是不是没法看了 实在有时你百度的时候也会涌现这种情形 加上皮肤是这个样子的
是在这里吸收皮肤的(每个登录后的页面都有)
首次打开便是未登录 以是乖乖去登录吧!
这里为理解释代码 以是从注册开始
你创造有的信息不填或格式不对是不能注册的 这是前台JavaScript做的 是一层保护 由于不能什么东西都往数据库里填吧!
这里不再详述 大略阐明一下 这是一层很弱的保护 由于你可以在浏览器的设置里禁用JavaScript
但是你禁用往后 你会创造你连qq空间都进不去了
言归正传 你看login.jsp源代码第65行 刚才你点的那个注册按钮实在是一个超链接 一点就跳转到zhuce.jsp了
再来到zhuce.jsp 别看内允许多 一折叠就剩这一点
这是一个表单 蓝色部分action的意思是提交后交给Shouye(便是咱们一开始实行的那个) 后边method是提交办法是post (一会你就明白了)
每个控件都有一个name 下边这一部分:第一行type表示类型 hidden是隐蔽域 (便是页面里不显示但存有数据)第一行的意思是这是一个隐蔽域 名字叫key 内容是insert第二行:submit是提交按钮 点击后会把表单里的以是name和对应的value都提交的表单头里的位置(这个界面是提交到Shouye里的)
第三行:reset是重置按钮 点击后会把表单里已填的内容全部清空回到初始状态
第四行:还是一个超链接 还是跳转到Shouye 由于没有登录session不存在 还会跳的login.jsp
这里点击注册后会提交到Shouye 以是我们再回到Shouye来看 由于上边写的是post提交办法
以是会实行doPost这个方法
你会创造里边有两个if 实在就相称于两把锁 然后通过刚才传过来的那个key(隐蔽域里的)相称于用钥匙来试锁 刚才我们传过来那个key的内容是insert 以是会实行下图所示区域的代码
便是先把传过来的值都保存下来 然后判断个中三个(id name和pass)是不是空的 如果不是空的实行下边的代码 你会创造会调用Userbean里的insert_xinxi和insert方法 要用这些方法就得导入这个类
开头已经导入了
然后我们去看lr.bean.Userbean 就在这里
我们之前说过 这个文件夹下的程序是用来连接数据库来操作数据的
这四句便是要连接数据库的信息 都是固定的 个中第一句在这里
第二句在这里 唉 我找不到了... 不过不要紧你可以去百度
为什么要讲这两个呢 直接记住不就完了? 由于用的数据库软件可能不一样 对应的这两条信息也不一样 而且之前导入那个jar包也是 例如:如果用的是sql server 就须要导入其他包 这四条信息也要换
回到程序连续讲 u和p分别对应你MySQL里的连接名和密码 在这里
连续看下边 你会创造有很多方法 折叠后还有这么多
我们第一个调用的是这个方法
上边是传来的参数 这两句便是我们之前定义的连接信息
这是一条sql语句 意思便是向xinxi这个表里插入信息 有人会问后边一堆问号什么意思?
下边给出了 传给第一个“?” name 第二个是id 以此类推...
然后 实行sql语句 上界限说i初始为0 但是如果实行成功 i 的值肯定大于0 然后返回 i的值
下一个方法也是类似 只是参数和名字不一样 这里不再详述
然后我们连续看Shouye这里
这下该当明白了吧 i和j便是刚才调用那两个方法的返回值 如果都大于0就解释实行sql语句成功了吧
然后跳转到zhuceok.jsp 这个界面里就一句 一个超链接 点击后跳转到 Userservlet
实在这里该当改成让它跳转到Shouye的 由于你会创造Userservlet里又是一大堆锁 当它没有获取到session的时候没有默认跳转到login.jsp(便是登录界面)那里 但是我们实行的时候 确实又跳转到了登录界面 这是什么缘故原由呢? 这是我们的过滤器就该闪亮登场了
我们之前说的 filter里放的是过滤器 当时都不知道是干什么用的
打开叫Three的过滤器 你创造它也是一个Java程序
这一句表示 哪些页面须要过滤
Userservlet在里边吧 然后内容还是相似 如果N和n都不存在 就跳转到login
这个问题 实在不算个问题 由于那个Shouye是我后来加的 有的地方没改 当时我测试的时候也没创造
直到本日给你们细讲的时候才创造 哈哈!
这四个过滤器 建议大家好好看看
第一个是用来转码的 否则汉字会涌现乱码
第二个掌握 只有session N存在时才能访问这些界面(便是管理员登录)
第三个刚才看过了 是用户和管理员通用的页面
第四个便是只有用户才能访问的页面
好 注册我们讲完了 下面来讲登录 还回到login.jsp页面
你会创造 又是一个表单 提交到Shouye 提交办法是post 看到这个 你们该当立时就知道了 该当去实行Shouye里的doPost方法 登录按钮是submit 隐蔽域里藏的钥匙key是select
好了 这就清楚了 来看Shouye吧 一看提交办法是post 钥匙是select 以是该当开这把锁吧
开开之后 还是老一套 把表单里的内容取出来 判断是不是空的 然后调用Userbean里的select方法
来到Userbean 你会看到两个select方法 调用那个呢? 看参数 这里调用的是两个参数的 而且返回值也不一样 便是这个方法
还是老一套 连接数据库 传个参数 实行sql语句 都一样 不过这里把稳
实行sql语句后它返回了一个数组 它取了数组里的permissin这个字段
由于sql语句是在user表里做查询 找到name=传来的name pass=传来的pass 这些字段组成一个数组rs 由于user里只有三个字段 以是这里rs数组的内容是['name' 'pass' 'permissin']
普通的说 便是去表里查名字叫? 密码是?? (?便是传来的name ??便是传来的pass) 为什么要指定密码呢 直接查名字不就行了? 由于这是登录啊!
大哥!
不查密码怎么知道你密码对不对 就跟别人知道你QQ好就能上你QQ 那还了得? 以是查到相识释用户名对了 密码也对了 查不到解释有一个错了 然后把第三个字段的值(便是身份值)返回
连续看Shouye的那把锁
首先判断传回来那个身份是不是空的 如果是 解释没查到结果 那还说什么 直接走你 登录失落败;
如果不是空的解释查到了 有这个人 而且密码是对的 再来判断是管理员啊还是用户啊 如果是管理员 就创建一个session N(把稳!
session便是从这里创建的)里边放你的名字 跳转到ok页面 如果不是管理员 那便是用户 创建个session n 放入你的名字 去yonghuok页面 现在大家该当明白 一开始获取的session N和n是从哪来的了吧!
额 讲了这么多 不知道你们理解没有 实在讲完第一个注册功能 你们就该当能明白全体流程了 你会创造注册和登录有很多地方是一样一样的 无非一个是插入 一个查找
后面的功能实现方法都是类似的 大家举一反三 按照这个流程走一遍就都明白了
咱们详细来两个例子
来看ok页面
一看到<a> 就知道是个超链接 跳转到Newservlet页面 ?后边是传的参数 key便是上边说的钥匙 select是key的值
这里你们记住 只要不是form表单 并且通过post提交的 都是要调用doGet方法的!
!
!
便是这个
好了 该讲的都讲完了 还是看大家的理解了 反正这个流程便是重复重复再重复的 再讲也没有什么什么意义了 JSP的课程就讲到这里了 后边可能会有续集 由于有些同学可能有地方不明白 不过这也得看你们的回答来决定了...
还有便是 下面我会开始讲ASP.NET 跟JSP类似 只不过它是用C#做后台处理的 昨天说了
然后它比JSP更大略 所有东西都是通过鼠标点击拖动的 险些不用怎么写代码 (但是ASP貌似没多少人用 不知道为什么)
这里先给你们 ASP的开拓工具吧 http://pan.baidu.com/s/1gfx0Rxp
下载好后实行这个程序安装
这是微软的开拓工具 自带一大堆插件 没办法谁让人家是微软呢 系统都是人家的...
总之 建议大家先学习JSP 学会之后你会创造其他的ASP啊 PHP啊什么的都不是事
这里先给大家透漏一下后续课程吧 学完ASP后 我们将会开始学习PHP 这是目前比较火的措辞 一门独立的网站编程措辞 有集成的开拓环境 从我学的课程学时中也能看出来对它的重视!
篇幅较长 一天内完成 有个别错字请见谅!
本日就说到这吧 有问题记得给我留言哦!
再见!
!
!