Java-web阶段的学习我自己的感受是还行,只是还需要代码的练习,对于有些知识点的联合运用的地方还需要做更多的理解。
一、servlet
在这个阶段的第一天,主要学习了servlet相关项目的开发。我认识到了:
- servlet是一种用于扩展web服务器的功能、用于处理动态数据的组件规范。
- 组件:是符合一定规范,完成部分功能的软件模块。servlet、jsp就属于组件,tomcat属于容器。servlet必须放在tomcat容器中进行运行。必须先启动tomcat,然后才能访问到servlet、jsp。
servlet的开发步骤:
- 新建符合java web项目的工程
- servlet类继承HttpServlet
- 打包
- 部署
maven项目的创建,创建步骤为
1、选择项目的模板为:maven-archetype-webapp.
4、导入项目所需要的jar包:mysql驱动, servlet-api 的jar包;
servlet的参数
- servlet级的参数:servlet标签内部配置的参数,只在当前servlet有效。、
- context级的参数:全局参数,任何servlet中都可以使用。
二、jsp+servlet
在第五天,学习使用了servlet的转发和重定向的功能。
- 转发:转发的是一个请求处理了一部分功能,然后开始另一个请求处理剩下的功能。其本质就是一个请求。
/*转发到listEmp.jsp * --forward: 转发*/
RequestDispatcher requestDispatcher = req.getRequestDispatcher("emp/listEmp.jsp"); requestDispatcher.forward(req,resp);//转发,需要把当前的request,response对象传输到jsp页面
-
重定向:重定向是一个请求的功能完成了,然后开启另一个请求,做另一个功能。 本质是两个请求。(第一 个请求是我们主动发的, 第二个请求是浏览器收到302代码和重定向的url地址, 然后浏览器主动发送的请求。)
/*响应结果:更新成功之后,重定向到查询的请求*/ // resp.getWriter().println("更新成功!"); // ---使用response的sendRedirect方法,实现重定向的功能 // ---req.getContextPath(),项目的 resp.sendRedirect(req.getContextPath()+"/list.do");
为了解决有些获取数据的jsp代码量大的问题,我们学习了el表达式。
<% -- $ { emp . eno } : emp 对象的属性值的获取***** 对象 . 属性名 , 要求,属性必须提供了正确的 get 方法。 ( 本质就是在调用 get 方法 )-- %><h1> emp1:${emp1} </h1><h1> list:${emps} </h1>
三、cookie的使用
如:统计用户访问了多少次servlet 。
//获取cookieCookie [] cookies = req . getCookies ();int count = Integer . parseInt ( value ) + 1 ;// 修改 cookie 中的数据c . setValue ( count + "" );c . setMaxAge ( 30 );resp . addCookie ( c ); // 修改浏览器中的 cookie 的数据
四、session的使用
状态管理
- cookie : 客户端状态管理的技术;
- session:服务器端状态管理技术;
session中保存数据:
getSession(): 规则就是如果有就根据sessionid获取session对象,如果没有就直接创建一个session对象。
session常用于实现登录校验。把登录信息保存在session中。
五、过滤器
在这个阶段末尾的学习内容是:过滤器,监听器,ajax的使用 。常用于解决不同servlet中总有实现相同功能的代码的代码冗余的问题。如:一个员工管理系统,要实现在做每一个操作之前都必须先登录的问题。如果没有登录,就访问增删改查等的任一操作,都重定向到登录界面,只有登录成功,才能请求。
ajax: 异步请求, 用于网页的局部更新。使用jquery的ajax 函数,实现异步请求的发送,获取到数据之后,使用jquery 将数据渲染到网页上。