一些自己javaweb学习总结
来源:互联网 发布:达内培训 php机构 编辑:程序博客网 时间:2024/06/02 06:01
一、基础:
URL:Uniform Resource Locator——统一资源定位
URI:Uniform Resource Identifier——统一资源标识
URN:Uniform Resource Name——统一资源名称
URL组成:1、协议 2、主机ip地址 (端口号) 3,相对路径http://localhost:8080/news/dex.htm (https 安全)127.0.1 无状态就是请求完,不保存下次还的从新请求协议 主机地址 项目资源地址status状态码:
200 : 请求正常
404 : 路径错或页面没写;
5xx : 服务器端错误;
servlet是一个java程序(java类),是在服务器上运行以处理客户端请求并作出响应的程序Servlet是通过java代码实现页面的输出和逻辑的处理,JSP是通过HTML中填充java代码实现界面的输出和逻辑的处理。因此 JSP 的本质是 Servlet;
JSP注释 的格式为 <%– –%>,与 HTML注释 的区别在于:JSP注释不会输出到客户端、
二:JSP九大内置对象:
pageContext: 页面上下文对象
request :请求对象
session: 会话对象
application :应用程序对象
response :响应对象
out :页面输出对象
config: 配置对象
exception :异常对象
page :页面对象
page:范围里的变量无法从index.jsp传递到test.jsp,只要页面跳转了,它们就不见了;
request: 范围里的变量可以跨越forward的前后的两页,但是只要刷新页面,它们就重新计算了;
session: 范围里的变量一直在累加,开始还看不出区别,但只要关闭浏览器,再次重启浏览器访问这个页面,它们就重新计算了;
application: 范围里的变量一直在累加,除非你重启tomcat,否则它们会一直变大。
(1) 如果我们把变量放到pageContext里,就说明这个变量的作用域是page,它的有效范围只在当前jsp页面里。也就是说,从把变量放到pageContext开始,到jsp页面结束,你都可以使用这个变量。
(2) 如果把变量放到request里,就说明这个变量的作用域是request,它的有效范围是当前 请求周期。所谓请求周期,就是指从http请求发起,到服务器处理结束并返回响应的整个过程。在这个过程中可能使用forward的方式跳转了多个jsp页面,但由于仍然是同一个请求,因此在这些页面里,我们都可以使用这个变量。
(3) 如果把变量放到session里,就说明这个变量的作用域是session,它的有效范围是 当前会话。所谓当前会话,就是指从用户打开浏览器开始,到用户关闭浏览器这中间的过程,这个过程可能包含多个请求和响应。也就是说,只要用户不关浏览器,服务器就有办法知道这些请求是一个人发起的,整个过程被称为一个会话(session),而放到会话中的变量,就可以在当前会话范围内使用。
(4) 如果把变量放到application里,就说明这个变量的作用域是application,它的有效范围是 整个应用。所谓整个应用是指从应用启动,到应用结束。特别地,我们没有说“从服务器启动,到服务器关闭”,这是因为一个服务器可以部署多个应用,只要你结束了当前应用,这个变量就失效了。
- setAttribute(String Name, value)
- getAttribute(String Name)
- getParameter(String name)
- getParameterValues(String name)
- setCharacterEncoding("utf-8")
- GET 方式的请求:直接在浏览器地址栏输入访问地址所发送的请求或提交表单的默认请求参数发送方式;
- POST 方式的请求:以 post 方式提交表单,发送请求参数。该种方式一般将请求参数放在HTML HEADER 中传输,因此用户不能在地址栏看到请求参数值,安全性较高
- 转发与重定向:
- 转发带数据,重定向不带数据,转发地址栏不变,重定向地址栏变
- response.sendRedirect(request.getContextPath() + "/page/pub.jsp");(重定向)
- request.getRequestDispatcher("/page/on.jsp").forward(request, response);(转发)
- session与cookie:
- Cookie 与 Session的最大不同在于:session会随着浏览器的关闭而失效,但Cookie会一直存放在客户端的机器上,除非超出Cookie的生命周期。
- Cookie1、cookie是由服务器生成,通过response将cookie写回浏览器(set-cookie),保留在浏览器上,下一次访问,浏览器根据一定的规则携带不同的cookie(通过request的头 cookie),我们服务器就可以接受cookie2、cookie的api:new Cookie(String key,String value)写回浏览器:response.addCookie(Cookie c)获取cookie:Cookie[] request.getCookies()cookie的常用方法:getName():获取cookie的key(名称)getValue:获取指定cookie的值setMaxAge(int 秒):设置cookie在浏览器端存活时间 以秒为单位若设置成 0:删除该cookie(前提必须路径一致)
三、servlet的生命周期:
2、处理请求:当请求到达,执行servlet()方法,中包含doget(),dopost()方法
二、JSTL 1.获取的值 <c:set var="example" value="${100+1 } "></c:set> <c:out value="${example }"></c:out><br> 2.删除 <c:remove var="example"/><br> 3.输出 <c:out value="${example }"></c:out><br> 4.if <c:if test="${10>50 }"> 10>50</c:if><br>
二、迭代标签语法:<c:forEach items=“collection” var=“name” varStatus=“status” begin=“int“ end=”int” step=“int” > //循环体 </c:forEach>
1、遍历输出数字1--10 <c:forEach begin="1" end="10" var="i"> ${i } </c:forEach><br>
2、页面输出1--20之间奇数 <c:forEach begin="1" end="20" step="2" var="i"> ${i } </c:forEach><br> //定义一个数组 List<Integer>list=new ArrayList<Integer>(); list.add(1); list.add(3); list.add(4); session.setAttribute("list", list);
3、list的数组遍历 <c:forEach items="${list }" var="li"> ${li } </c:forEach><br>
4、map的遍历 <% Map<String ,String>map=new HashMap<String,String>(); map.put("n", "x"); map.put("a", "xi"); map.put("m", "xia"); map.put("e", "xiao"); session.setAttribute("_map", map); %> <c:forEach items="${_map }" var="ll"> ${ll}<br> ${ll.value} </c:forEach>
5、list中存储user遍历 <% List<User> _user=new ArrayList<User>(); User user=new User(); user.setName("rr"); user.setPwd("qq"); _user.add(user); session.setAttribute("user", _user); %> <c:forEach items="${user }" var="uu"> 姓名: ${uu.name }密码:${uu.pwd } </c:forEach><br>
6、i1页面 <jsp:forward page="index.jsp"></jsp:forward>
- 一些自己javaweb学习总结
- javaweb一些总结
- javaweb学习总结——编写自己的JDBC框架
- iOS 自己总结的一些学习资料
- mybatis自己学习的一些总结
- 自己学习自定义view的一些总结
- javaweb的一些异常总结
- 宝宝 javaweb 学习总结
- javaweb学习总结(体会)
- javaweb学习总结XML
- javaweb学习总结(体会)
- JavaWeb学习总结
- JavaWeb学习总结--收集
- JAVAweb 学习总结
- JavaWeb学习总结
- JavaWeb 学习总结开篇
- JavaWeb学习总结
- JavaWeb学习总结
- redis 分布式多线程细粒度锁
- 17.10.26
- webStorm11+ 配置git
- 深度纸质学习与实验(四)-将TensorFlow加入kubernetes完成与minist数据集初试
- photoShop扁平化平面设计精华
- 一些自己javaweb学习总结
- You have an error in your SQL syntax; 问题的实际解决方法
- 【C++】利用list和vector实现stack和queue!!!
- anconda离线安装python库
- 【多线程高并发】线程之间通信
- 老也有错?科技行业对大龄程序员的歧视
- 从重载自增操作符上理解前自增与后自增
- 2017年10月26日训练日记
- 把控App核心开发的质量-1-网络连接篇