第一课
java web 课堂记录:
B/S 表示:浏览器和客户端
C/S 比 B/S界面更加的友好
ASP(属于微软公司) 上手简单 方便 但是改起来很麻烦 运行速度没有JSP快
1 在JSP中嵌套java代码,使用<% java代码放在里面 %>
在JSP中取变量(表达式) 的值 使用<% =变量名 (表达式)%>
request session 都是isp的内置对象
在浏览器中输出,使用out对象(out.println)
2 GET 和 POST 的使用
用get或者post发送请求到服务器 请求网页的时候使用
get 传输数据有限不能超过2KB 不安全 明码发送能够看见密码等隐私问题
post传输数据没有限制 post比get请求方式更加的安全
<form action = ""></form> action=“ ws.jsp”点击提交之后跳转到ws.jsp这个页面
整个jsp代码 和java代码 都是在tomcat容器里面运行的!
Servlet:
接口:servlet是一个接口
功能:接受请求 响应
实现:Tomcat
Servlet生命周期
request:用于获得客户端(浏览器)的信息
response:用户向客户端(浏览器)返回信息
第二次课:
1 //解决乱码问题
response.setContentType("text/html;charSet=utf-8");
request.setCharacterEncoding("UTF-8");
2 //接受Form表单中标签的内容
String username = request.getParameter("user");
String password = request.getParameter("password");
3 //向浏览器输出信息
PrintWriter out = response.getWriter();
4 //页面跳转方法: 重定向方法 代入名字的值到新的界面
response.sendRedirect("Welcome?username="+username+"&password="+password) 不安全
重定向:指的是页面重新定位到某个新地址(意思是多个页面共享数据)
第三次课:
1.重定向时:代入值到新的界面
2.到数据库中来找登录时的用户
3.建一个model包, 所有有关操作数据库的都放在里面
建库uhlg 表user
在model中添加User类
在model中添加userDao类
在model中添加它的实现接口userDao类 user
在同一用户不同页面之间如何共享数据
Cookie技术(小甜饼)
Sendredirect()转向
隐藏表单
Session技术
第四次课:
同一用户的不同界面之间如何共享数据
1,cookie:cookie怎么用?
占用:用户自己的空间
2,session 会话:当用户打开浏览器,访问某个网站时,服务器就会在服务器内存为浏览器分配一个空间
servlet,sessionTest1 sessionTest2
创建:HTTPSession hs = request.getSession(true);
3,地址重定向 response.sendRirect("Welcome?username="+username+"&password="+password)
servletContext :不同用户之间来共享空间
创建:ServletContext sc= this.getServletContext();
赋值:sc.setAttribute("username","you")
取值:sc.getAttribute(String name);
移除:sc.removeAttribbute(String name);
ServletContext中的属性的生命周期从创建开始,到服务器结束而关闭。
4,隐藏域:隐藏域在页面中对于用户是不可见的,在表单插入中隐藏域的目的在于收集和发送信息,以利于被处理表单的程序所使用
注:隐藏只是在网页页面上不显示输入框,但是虽然隐藏了,还是具有form传值功能。一般用来传值,而不必让用户看到。
基本语法:
<input type="hidden" name="field_name" value="value" />
隐藏域作用:
1、隐藏域在页面中对于用户是不可见的,在表单中插入隐藏域的目的在于收集或发送信息,以利于被处理表单的程序所使用。浏览者点击发送按钮发送表单的时候,隐藏域的信息也被一起发送到服务器。
2、有些时候我们要给用户信息,让他在提交表单时提交上来以确认身份,如:sessionkey,etc,当然这些东西也能用cookie实现,但使用隐藏域就简单的多了,而且不会有浏览器不支持,用户禁用cookie的烦恼。
3、有些时候一个form里有多个提交按钮,怎样使程序能够分清到底用户是按哪一个按钮提交上来的呢?我们就可以写一个隐藏域,然后在每一个按钮处加上onclick="document.form.command.value="xx"",然后我们接到数据后先检查command的值就会知道用户是按哪个按钮提交上来的。
4、有些时候一个网页中有多个form,我们知道多个form是不能同时提交的,但有时候form确实互相作用,我们就可以在form中添加隐藏域来使它们联系起来。
5、JavaScript不支持全局变量,但有时我们必须用全局变量,我们就可以把值先存在隐藏域里,它的值就不会丢失了。
6、还有个例子,比如按一个按钮弹出四个小窗口,当点击其中的一个小窗口时其他三个自动关闭.可是IE不支持小窗口相互调用,所以只有在父窗口写个隐藏域,当小窗口看到那个隐藏域的值是close时就自己关掉。
缺点:占服务器的空间
应用:网上商场购物车 保存用户登录信息 将某些数据保存到session中 防止非法登录
添加两个servlet,sessionTest1 sessionTest2
第五次课
MVC:模型-视图-控制器
M:model 所有操作数据库的
C:Controllen处理业务逻辑的
V:View 视图 就是通常的页面(jsp,h5)
UserManaSys
1 把数据库连接上
2 先建MOdel包
3 在建Controllen 包
4 在Login.jsp action
5 建Welcome.jsp
在浏览器上显示 登录成功,欢迎某某(两中方法session 直接从登入页面的表单中获取其标签上的信息在welcome 页面中,要防止实现 非法登入的功能)
6 在controllen 包中建立LoginClservlet 完成用户登入
分页:
显示你的表的信息:UserDaoSQLImpl 取出要显示的表中的信息,放入list中
SELECT * FROM users LIMIT 2,4:数据库从0开始 从数据库的第二条开始显示 一共显示四条数据 2表示从第二条语句开始 4 表示一共显示四条数据
一页显示多少 记录呢?
我当前要显示的页面是第几页呢?
一共要显示多少页呢?
网页点击量(被访问的次数的统计)做法:
1用文件:为了避免频繁地操作数据库。
配置数据源和连接池
过滤器
输入过滤器名称,跟创建Servlet一样,这里我们直接使用@WebFilter注解,不再去web,xml中进行配置了