jsp学习.docx
- 文档编号:25394765
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:17
- 大小:288.41KB
jsp学习.docx
《jsp学习.docx》由会员分享,可在线阅读,更多相关《jsp学习.docx(17页珍藏版)》请在冰豆网上搜索。
jsp学习
目录:
Web
——index.html
——WEB-INF
——classes(java)
——lib(jar)
web.xml
Http协议:
http/1.0
http/1.1
请求行:
GET方式;POST方式;
请求头:
Accept:
用户告诉服务器,客户机支持的数据格式。
Aceept-Charset:
用于告诉服务器,客户机采用的编码。
Accept-Encoding:
用户告诉服务器,客户机支持的数据压缩格式。
Accept-Language:
客户机的语言环境;
Host:
客户机通过这个头告诉服务器,想访问的主机名。
If-Modified-Since:
客户机通过这个头告诉服务器,资源的缓存时间。
Referer:
客户机通过这个头告诉服务器,它是从哪个资源访问服务器的。
(从那个页面过来的)防止盗链(不是从这个网站过来的,跳到首页)
User-Agent:
客户机通过这个头告诉服务器,客户机的软件环境。
Cookie:
客户机通过这个头向服务器带一点数据。
Connection:
Date
http响应:
响应头:
Location:
这个头配合302使用,找谁。
302+Location请求重定向。
Server:
服务器通过这个头,告诉浏览器服务器的类型。
Content-Encoding:
服务器通过这个头,数据的压缩格式。
Content-Length:
服务器通过该头,告诉浏览器回送数据的长度。
Content-Type:
服务器通过该头,告诉浏览器回送数据的类型。
Last-Modified:
服务器通过这个头,告诉浏览器当前资源缓存时间。
Refresh:
服务通过这个头,告诉浏览器多长时间刷新下。
(聊天室,论坛登录)
Content-Desposition:
服务器通过这个头,告诉浏览器以下载方式打开数据。
Transfer-Encoding:
服务器通过这个头,告诉浏览器数据的传递格式。
ETag:
缓存相关的头
Expires:
服务器通过这个头,告诉浏览器把回送的资源缓存多长时间,-1或0,则是不缓存。
Cache-Control:
no-cache
Pragma:
no-cache
服务器通过以上两个头,也是控制浏览器不要缓存数据。
断点下载
Range
请求数据
伪静态:
映射
MVC
Mode——javabean
View——jsp
Controller——servlet
Request.sendredirect(“/form.html”).forward(request,reponse);//服务器用;
Response.sendredirect(“/test/form.html”);//浏览器用;
this.getservletcontext().getrealpath(“/form.html”);
this.getservletcontext().getresourceasstream(“/form.html”);
浏览器
Response
PrintWriterout=response.getWriter();
out.write("helloworld");
response.getWriter().write("helloworld");
控制输出乱码:
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
重定向:
response.sendRedirect("/test/index.jsp");
刷新
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
response.setHeader("refresh","3;url=/test/index.jsp");
response.getWriter().write("恭喜你登陆成功,本浏览器将在3秒后跳转,如果没跳转,请点击
控制浏览器缓存
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
//控制浏览器缓存;
response.setDateHeader("Expires",System.currentTimeMillis()+1000*3600);
Stringdata="中国";
response.getWriter().write(data);
Request
获取参数:
//get方式乱码(手工处理,超链接);
Stringname_value=request.getParameter("username");
name_value=newString(name_value.getBytes("iso8859-1"),"UTF-8");
//中文乱码;
request.setCharacterEncoding("UTF-8");//只对post有效;
System.out.println(request.getParameter("username"));
System.out.println(request.getParameter("pass"));
System.out.println(request.getParameter("gender"));
System.out.println(request.getParameter("city"));
Stringlikes[]=request.getParameterValues("likes");
for(inti=0;i System.out.println(likes[i]); } System.out.println(request.getParameter("description")); System.out.println(request.getParameter("id")); 转发 Stringdata="aaa"; request.setAttribute("data",data); //转发; request.getRequestDispatcher("/message.jsp").forward(request,response); 防盗链: Stringreferer=request.getHeader("referer"); if(referer==null||! referer.startsWith("http: //localhost")) { //action response.sendRedirect(""); return; } Cookie //设置Cookie; Cookiecookie=newCookie("lastAccessTime",System.currentTimeMillis()+""); cookie.setMaxAge(1*30*24*3600); cookie.setPath("/eclipse"); response.addCookie(cookie); //获取Cookie Cookiecookies[]=request.getCookies(); for(inti=0;cookies! =null&&i if(cookies[i].getName().equals("lastAccessTime")){ Longcookievalue=Long.parseLong(cookies[i].getValue()); Datedate=newDate(cookievalue); response.getWriter().write(date.toLocaleString()); } } //清除cookie Cookiecookie=newCookie("lastAccessTime",System.currentTimeMillis()+""); cookie.setMaxAge(0); cookie.setPath("/eclipse"); response.addCookie(cookie); response.sendRedirect("/test/"); Session //设置session HttpSessionsession=request.getSession(); session.setAttribute("name","洗衣机"); //获取Session HttpSessionsession=request.getSession(); Stringproduct=(String)session.getAttribute("name"); //销毁Session session.invalidate(); session.removeAttribute("name"); //表单重复提交 js(君子,小人) variscommitted=false; functiondosubmit() { If(! iscommitted) { Iscommitted=true; Returetrue; } else{returnfalse;} } 设置按钮不可用; 后台; JSP 访问jsp其实是调用servlet Request Response Session Application <%@includefile="/public/head.jsp"%>先包含再翻译,把所有jsp翻译成一个servlet <% request.getRequestDispatcher("/public/foot.jsp").include(request,response); %>动态包含,先翻译再包含 Page指令 include指令 静态包含(静态页面) <%@includefile="/public/head.jsp"%>//形成一个文件再编译; Jsp动作元素 include> 动态包含 includepage="/public/head.jsp"> include> param> includepage="/public/head.jsp"> paramvalue="tomcat"name="name"/> include> head.jsp <% out.println("helloworlds Stringname=request.getParameter("name"); out.println(name); %> forward> forwardpage="forward.jsp"> forward> useBean> useBeanid="person"class="com.vince.bean.Person"> useBean> <%--设置对象的属性值--%> setPropertyproperty="name"name="person"value="小白"/> setPropertyproperty="age"name="person"value="18"/> <%--获取对象的属性值--%> getPropertyproperty="name"name="person"/> getPropertyproperty="age"name="person"/> 内置对象 out.println(); out.print(); out.write(); request request.getParamater(key); request.getParameterValues(key);//获取一组数据; request.getRequestDispatcher(“list.jsp”).forward(request,response); request.setAttribute(key,value); request.getAttribute(key); request.setChracterEncoding(“UTF-8”);//只能设置post; String[]likes=request.getParameterValues(key);//获取一组数据; request.setAttribute(key,value);//转发的时候带一些数据过去; request.getAttribute(key);//获取; request.getContextPath();//获取根路径; response response.sendRedirect(“页面”); response.setCharacterEncoding(“UTF-8”); response.setCharacterEncoding(“UTF-8”);//设置响应编码; response.setContentType(“text/html;charset=UTF-8”);//设置内容类型; session session.setAttribute(“name”,username);//将用户名保存到当前会话对象中; session.getAttribute(“name”);//获取session; session.setMaxInactiveInterval(1000*60*30);//30分钟; session.invalidate();//设置session初始化;(系统退出) pageContext 上下文对象; application 公共的; application.setAttribute("count",num); application.getAttribute("count"); config page exception 表单传值 get: 显示请求方式,速度快,安全性低,请求数据不能超过4KB; post: 隐式请求方式; request.setChracterEncoding(“UTF-8”); get方式: 方式一: Stringname=newString(name.getBytes("iso-8859-1"),"UTF-8");//后台; 方式二: functionlogin() { varloginform=documnet.forms["loginform"]; loginform.name.value=encodeURI(login.form.name.value); loginform.submit(); }//onsubmit函数; Stringname=URLDecoder.decode(name,"UTF-8");//后台获取; 隐藏域 Cookie //设置Cookie CookienameCookie=newCookie("username",name); nameCookie.setMaxAge(60*60*24*3);//三天; CookiepwdCookie=newCookie("password",pwd); pwdCookie.setMaxAge(60*60*24*3); response.addCookie(nameCookie); response.addCookie(pwdCookie); //获取Cookie Cookie[]cookies=request.getCookies(); for(inti=0;i { if("username".equals(cookies[i].getName())) { username=cookies[i].getValue(); } if("password".equals(cookies[i].getName())) { password=cookies[i].getValue(); } } EL表达式 ${sessionScope.user} ${sessionScope.userbean.sex} ${sessionScope.userbean[“sex”]} EL隐含对象 pageContext pageScope requestScope sessionScope applicationScope param paramValues header headerValues cookie initParam JSTL标签 核心标签库 out>//输出; set>//定义变量; if>//if choose>//when iftest="${notemptyrequestScope.name}"> 欢迎你, outvalue="${requestScope.name}"> out> if> iftest="${emptyrequestScope.name}"> 登录 if> setvar="age"value="18"> set> choose> whentest="${age<18}"> 未成年 when> whentest="${age>=18&&age<30}"> 欢迎光临 when> otherwise> 老年人注意身体 otherwise> choose> //遍历 forEachitems="${requestScope.users}"var="user"> ${user.name} ${user.age} forEach> -- varStatus状态 index索引从0开始 count从1开始当前遍历次数 current当前正在迭代的 first是否第一个 last是否最后一个 --> forEachbegin="0"varStatus="status"end="10"items="${requestScope.users}"var="user"> ${user.name} ${user.age} ${status.index} ${status.count} ${status.current} ${status.first} ${status.last} forEach> setvar="likes"value="xiaoqiu,libai"> set> //切分 forTokensitems="${likes}"delims=","var="val"> ${val} forTokens> Servlet
");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- jsp 学习