为了账号安全,请及时绑定邮箱和手机立即绑定

javaee开发之jsp学习复习笔记(上)

标签:
Java

一、java web简介:

1.什么是一个web应用程序
答:详见下图:(1)web应用程序:图片描述(2)软件开发的3个领域:图片描述
2.静态网页与动态网页
答:详见下图:图片描述
3.搭建javaweb开发环境
答:详见下图:图片描述图片描述只用配置家目录即可:图片描述再服务器的bin目录下运行startup.bat运行tomcat服务器后测试图片描述
4.Tomcat目录结构
答:详见下图:图片描述图片描述
5.web-info目录详解
答:详见下图:图片描述(1).web-info里面的资源是个安全目录只有服务器才能访问,也就是说不管里面有啥文件没有服务的允许浏览器是不可以访问到的:图片描述(2)由于我们的web.xml配置文件默认是访问index.jsp,也就是说我们输入127.0.0.0.1:8080/项目名 默认看到的页面是index.jsp图片描述修改默认访问的页面图片描述
6.Myeclipse开发java web程序
答:详见下图:(1).给myeclipse配置jre:图片描述(2)给myeclipse配置tomcat服务器:图片描述(3)发布项目:图片描述(4)启动服务器:图片描述图片描述(5)项目目录结构(web-info项目的配置目录,meta-inf:项目的描述文件):图片描述
7.理解web项目虚拟路径
答:详见下图:图片描述说白了你去tomcat服务器里看你的项目名被该了,这样以后我们就可以谁便改项名了图片描述
8.修改Tomcat服务器默认端口
答:详见下图:图片描述
9.eclipse开发java web应用
答:使用的eclipse是要支持jee开发的;
详见下图:(1)在创建项目是要选择自己的jre和tomcat服务器,运行项目是直接点击项目右键运行即可图片描述(2)项目的目录结构:图片描述
二、jsp基础语法:

10.jsp简介
答:详见下图:jsp和servlet本质一样:图片描述
11.常见的动态网站开发技术对比
答:详见下图:图片描述图片描述
12.jsp页面元素简介及page指令
答:详见下图:(1)jsp页面元素的构成:图片描述jsp指令:图片描述默认的字符集是个纯英文的字符集图片描述
13.jsp注释
答:详见下图:图片描述
14.jsp脚本
答:详见下图:图片描述
15.jsp声明
答:详见下图:可以定义变量也可以是个函数图片描述图片描述
16.jsp表达式
答:详见下图:表达式不以分号结束:图片描述图片描述
17.jsp页面的生命周期
答:详见下图:tomcat里面存的是项目的jsp页面编译前和后的java文件和字节码文件;注意当用户访问时才会编译或者当jsp内容改变后用户再次访问服务器自动编译不需要重启服务器图片描述图片描述
三、jsp内置对象

18.jsp内置对象简介
答:详见下图:图片描述图片描述
19.web程序的请求与响应模式
答:详见下图:图片描述图片描述
20.out对象
答:详见下图:图片描述图片描述图片描述图片描述

<% 
   out.println("<h2>静夜思</h2>");
   out.println("床前明月光<br>");
   out.println("疑是地上霜<br>");
   out.flush();
   //out.clear();//这里会抛出异常。
   out.clearBuffer();//这里不会抛出异常。
   out.println("举头望明月<br>");
   out.println("低头思故乡<br>");

%>
    缓冲区大小:<%=out.getBufferSize() %>byte<br>
    缓冲区剩余大小:<%=out.getRemaining() %>byte<br>
   是否自动清空缓冲区:<%=out.isAutoFlush() %><br>    

21.get与post提交方式的区别
答:详见下图:图片描述图片描述
22.request对象
答:详见下图:图片描述
服务器接收数据:

<% 
       request.setCharacterEncoding("utf-8"); //解决中文乱码问题,无法解决URL传递中文出现的乱码问题。只能修改tomcat的配置文档service.xml
       request.setAttribute("password", "123456");

    %>
        用户名:<%=request.getParameter("username") %><br>   
        爱好 :<% 
           if(request.getParameterValues("favorite")!=null)
           {
               String[] favorites = request.getParameterValues("favorite");
               for(int i=0;i<favorites.length;i++)
               {
                  out.println(favorites[i]+"  ");
               }
            }
        %> <br>
         密码:<%=request.getAttribute("password") %><br> 
         请求体的MIME类型:<%=request.getContentType() %><br>
         协议类型及版本号:  <%=request.getProtocol() %><br>
         服务器主机名 :<%=request.getServerName() %><br>
         服务器端口号:<%=request.getServerPort() %><br>
         请求文件的长度 :<%=request.getContentLength() %><br>
         请求客户端的IP地址:<%=request.getRemoteAddr() %><br>
         请求的真实路径:<%=request.getRealPath("request.jsp") %><br>
         请求的上下文路径:<%=request.getContextPath() %><br>    

get方法传参数是解决乱码问题(记得修改tomcat服务器后记得重启,否者不会生效):
图片描述
用户注册提交:

 <form name="regForm" action="request.jsp" method="post">
    <table>
      <tr>
        <td>用户名:</td>
        <td><input type="text" name="username"/></td>
      </tr>
      <tr>
        <td>爱好:</td>
        <td>
           <input type="checkbox" name="favorite" value="read">读书
           <input type="checkbox" name="favorite" value="music">音乐
           <input type="checkbox" name="favorite" value="movie">电影
           <input type="checkbox" name="favorite" value="internet">上网
        </td>
      </tr>
      <tr>
         <td colspan="2"><input type="submit" value="提交"/></td>
      </tr>
    </table>
    </form>
 <a href="request.jsp?username=李四">测试URL传参数</a>

服务器端存储用户传来的数据(字符串也是个对象): request.setAttribute("password", "123456");
request的获取客户端的信息:
图片描述
23.response对象
答:详见下图:图片描述
这里没写获取表单提交的提交数据,response对象只是个响应request负责获取客户端的值,说白了response用来做请求重定向或请求转发

<%
    response.setContentType("text/html;charset=utf-8"); //设置响应的MIMI类型

    out.println("<h1>response内置对象</h1>");
    out.println("<hr>");
    //out.flush();

    PrintWriter outer = response.getWriter(); //获得输出流对象
    outer.println("大家好,我是response对象生成的输出流outer对象");
    //response.sendRedirect("reg.jsp");//请求重定向
    //请求重定向
    //response.sendRedirect("request.jsp");
    //请求转发
    request.getRequestDispatcher("request.jsp").forward(request, response);
%>

24.请求重定向与请求转发的区别
答:详见下图:请求重定向是客户器端行为而请求转发是服务器端行为图片描述图片描述
(1)请求重定向测试(两次不同的请求):
在表单中把Action改为response.jsp,response.jsp把请求(请求重定向)转发给request.jsp代码如:response.sendRedirect("request.jsp");这样一来request.jsp就无法获取表单提交的数据说明response是谁找我我对谁有效;
本来form表单是提交给response.jsp处理的但response.jsp请求重定向给了request.jsp;这里的地址发生了变化(要是请求转发的地址会是form提交的那个地址),也就是一次新的请求,也获取不到表单的数据,
图片描述
(2)请求转发测试(是一次请求)
图片描述
25.什么是session
答:详见下图:图片描述图片描述图片描述
26.session对象
答:记得session是存在服务器端的详见下图:图片描述图片描述
案例:

 <% 
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
      Date d = new Date(session.getCreationTime());
      session.setAttribute("username", "admin"); 
      session.setAttribute("password", "123456");
      session.setAttribute("age", 20);

      //设置当前session最大生成期限单位是秒
      //session.setMaxInactiveInterval(10);//10秒钟

    %>
    Session创建时间:<%=sdf.format(d)%><br>    
    Session的ID编号:<%=session.getId()%><BR>
         从Session中获取用户名:<%=session.getAttribute("username") %><br>

    <a href="session_page2.jsp" target="_blank">跳转到Session_page2.jsp</a>   

要跳到的页面

 <% 
      //SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
      //Date d = new Date(session.getCreationTime());
      //session.setAttribute("username", "admin"); 
    %>

    Session的ID编号:<%=session.getId()%><BR>
         从Session中获取用户名:<%=session.getAttribute("username") %><br>
    Session中保存的属性有:<% 
                     String[] names =session.getValueNames();
                     for(int i=0;i<names.length;i++)
                     {
                        out.println(names[i]+"  ");
                     }

    %>

测试数据:图片描述图片描述
只要把浏览器与本次会话相关的页面关l本次会话就结束了,也就是访问的网站的所有页面即可;

27.session的生命周期
答:详见下图:图片描述图片描述图片描述
图片描述图片描述图片描述
28.application对象
答:详见下图:图片描述图片描述

  <% 
       application.setAttribute("city", "北京");
       application.setAttribute("postcode", "10000");
       application.setAttribute("email", "lisi@126.com");

    %>
         所在城市是:<%=application.getAttribute("city") %><br>
    application中的属性有:<% 
         Enumeration attributes = application.getAttributeNames();
         while(attributes.hasMoreElements())
         {
            out.println(attributes.nextElement()+"  ");
         }
    %><br>
JSP(SERVLET)引擎名及版本号:<%=application.getServerInfo() %><br>             

29.page对象
答:详见下图:图片描述<%=page.toString() %>具体可看tomcat目录下的work目录图片描述
30.pageContext对象和config对象
答:详见下图:图片描述图片描述

<body>
    <h1>pageContext内置对象</h1>
    <hr>    
        用户名是:<%=pageContext.getSession().getAttribute("username") %><br>      
    <% 
       //跳转到注册页面
       //pageContext.forward("reg.jsp");
       pageContext.include("include.jsp");
    %>                
  </body>

图片描述
31.exception对象
答:详见下图:图片描述
异常页面

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8" errorPage="exception.jsp"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>

  <body>
    <h1>测试异常的页面</h1>
    <hr>

    <% 
      System.out.println(100/0); //抛出运行时异常,算数异常
    %>
  </body>
</html>

把异常交给这个页面处理:

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8" isErrorPage="true" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>

  <body>
    <h1>exception内置对象</h1>
    <hr>

        异常的消息是:<%=exception.getMessage()%><BR>
        异常的字符串描述:<%=exception.toString()%><br>
  </body>
</html>
点击查看更多内容
33人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
67
获赞与收藏
941

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消