Web期末考试

↘锁芯ラ 提交于 2019-12-26 17:00:53

HTML

table布局

(1)表格的cellspacing:设置表格中单元格之间的间距
(2)<ul>是无序 <ol>是有序
(3)<a href="ww.baidu.com">是代表超链接
(4)../ 是表示上层目录
(5)border表示边框
(6) align排列,这里表示对齐方式
(7)"<tr>...</tr> "表示一行
(8)<td>...</td>单元格 th = 加粗并水平居中的td
(9)<input type = "text" >
(10)<input type = "password" >
(11)<input type = "button" >
(12)<input type = "radio" >
(13)<input type = "checkbox" >

在这里插入图片描述(14)<hr>代表横线
(15) <br> 可插入一个简单的换行符

关于表单的知识点总结
1.form 必须有action属性,表示提交地址
2.所有需要提交的数据,input必须要有name属性
3.input按钮的的文字,使用value属性表示
4.input必须放在表单里才能提交

get请求和post请求的区别
1.get请求表示获取数据
2.post表示提交数据
3.get请求发送的数据都写在地址栏上,用户可见
4.post请求发送的数据用户不可见
5.get请求不能提交大量数据,post不可以

CSS

  • text-align 表示内部元素水平居中

  • margin:auto 表示让元素本身水平居中

  • background-color :gray 设定背景颜色

  • font-size:24px

  • 设置字体大小 color :white 设

  • 置颜色

  • ***colspan设为“3”, 令所在单元格横跨了三列,就是宽变长了

  • rowspan被设为“3”,这表示该单元格必须跨越三行(本身一行,加上另外两行)***

    css选择器

ID选择器 : #box
标签选择器 : div
类别选择器 : .nav
通用选择器 : *
在这里插入图片描述

  • Padding,内边距,决定了内容至边线的距离;

  • margin 外边距,元素边线到其他元素的距离

  • opacity透明度

  • text-align 对齐方式

  • text-indent 缩进

    font
    font-family:字体
    font-style:字体样式,倾斜,正常
    font-size:大小
    font-weight:normal,lighter,bold,900 字体粗细

    list

    list-style-type 样式
    list-style-image 图片
    list-style-position 外部还是内部

选择符:鼠标悬停在列表上(伪操作符)
【 这个表示的是:当鼠标悬浮在a这个样式上的时候,a的背景颜色设置为黄色】
a:hover
{
background-color:yellow;
}

JavaScript

  • onclick 点击之后
  • onload 完成页面加载
  • 将字符类型转换成int不可直接强制转换可用 Integer.parseInt方法
    eg:int a = Integer.parse(flag);

关于函数声明
function hanshuming(参数){
}
request/response
request对象:

String getParameter(String name) 返回name指定参数的参数值
String[] getParameterValues(String name) 返回包含参数name的所有值的数组
void setAttribute(String name) 存储此请求中的属性
object getAttribute(String name) 返回指定属性的属性值

    <%
        request.setCharacterEncoding("utf-8");
        request.setAttribute("password", 123456);
    %>
<body>
    <h1>用户注册</h1>
    <hr>
    <form action="response.jsp" name="regForm" 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>
    <br>
    <br>
    <a href="request.jsp?username=李四">测试URL传参数</a>
</body>
</html>
  <body>
    <h1>request内置对象</h1>
    <%
        //与第一行编码要一样,无法解决URL传参出现的乱码问题
        request.setCharacterEncoding("utf-8");
        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] + "&nbsp;&nbsp;");
            }
        }
    %><br>
    密码:<%=request.getAttribute("password") %><br>

session常用方法:

  • long getCreationTime(): 返回session创建时间
  • public String getId():返回session创建时JSP引擎为它设计的唯一ID号
  • public Object setAttribute(Stringname,Object value):使用指定名称将对象绑定到此会话
  • public Object getAttribute(String name):返回与此会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回null
  • String[] getValueNames():返回一个包含此session中所有可用属性的数组 int
    getMaxInativeInterval():返回两次请求间隔多长时间此session被取消(单位)
<body>
     <h1>session内置对象</h1>
     <hr>
     <%
        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", "21");
        //设置当前session最大生成期限(单位是秒)    
        //session.setMaxInactiveInterval(10);
      %>
      Session创建时间:<%=sdf.format(d) %><br>
      Session的ID编号:<%=session.getId() %><br>
      从Session中获取用户名:<%=session.getAttribute("username") %><br>
        <%  
            //session.invalidate();//销毁当前会话
         %>
        <a href="session_page2.jsp" target="_blank">跳转到Session_page2.jsp</a>
  </body>

<body>
     <h1>session内置对象</h1>
     <hr>
     <%
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        Date d = new Date(session.getCreationTime());
        session.setAttribute("username", "admin");
      %>
      Session创建时间:<%=sdf.format(d) %><br>
      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]+"&nbsp;&nbsp");
            }
         %>
  </body>

request 对象
request 对象包含所有请求的信息

 request 对象实现javax.servlet.http.HttpServletRequest接口的,所提供的方法可以将它分为四大类:

 (1)储存和取得属性方法;
  void setAttribute(String name, Object value)      设定name属性的值为value
  Object getAttribute(String name)   取得name 属性的值
  void removeAttribute(String name)  移除name 属性的值
 
 (2)取得请求参数的方法
  String getParameter(String name)   取得name 的参数值
  Enumeration getParameterNames()    取得所有的参数名称
  String [] getParameterValues(String name)    取得所有name 的参数值
  Map getParameterMap()              取得一个要求参数的Map

 (3)能够取得请求HTTP 标头的方法
  String getHeader(String name)      取得name 的标头
  Enumeration getHeaderNames()       取得所有的标头名称
  Enumeration getHeaders(String name) 取得所有name 的标头
  int getIntHeader(String name)      取得整数类型name 的标头
  long getDateHeader(String name)    取得日期类型name 的标头
  
 (4)其他的方法
  String getContextPath()            取得Context 路径(即站台名称)
  String getMethod()                 取得HTTP 的方法(GET、POST)
  String getRequestedSessionId()     取得用户端的Session ID
  String getRequestURI()             取得请求的URL,但是不包括请求的参数字符串
  String getRemoteAddr()             取得用户的IP 地址
  String getRemoteHost()             取得用户的主机名称
  int getRemotePort()                取得用户的主机端口
  String getRemoteUser()             取得用户的名称
  void getCharacterEncoding(String encoding)    设定编码格式,用来解决窗体传递中文的问题

3)session 对象
 session对象表示目前个别用户的会话(session)状况。

  long getCreationTime()             取得session产生的时间,单位是毫秒
  String getId()                     取得session 的ID

  boolean isNew()                    判断session 是否为"新"的会话
  void setMaxInactiveInterval(int interval)   
                                   设定最大session不活动的时间,若超过这时间,session 将会失效
4)application对象
 application对象最常被使用在存取环境的信息。
 因为环境的信息通常都储存在ServletContext中,所以常利用application对象来存取ServletContext中的信息。
 application 对象实现javax.servlet.ServletContext 接口,ServletContext接口容器所提供的方法
  int getMajorVersion()              取得Container主要的Servlet API版本
  int getMinorVersion()              取得Container次要的Servlet API 版本
  String getServerInfo()             取得Container的名称和版本
  String getMimeType(String file)    取得指定文件的MIME 类型
  ServletContext getContext(String uripath)        取得指定Local URL的Application context
  String getRealPath(String path)    取得本地端path的绝对路径
  void log(String message)           将信息写入log文件中
  void log(String message, Throwable throwable)    将stack trace 所产生的异常信息写入log文件中

3.其他对象:

1)page 对象
 page对象代表JSP本身,更准确地说page对象是当前页面转换后的Servlet类的实例。
 从转换后的Servlet类的代码中,可以看到这种关系: Object page = this;
 在JSP页面中,很少使用page对象。
2)response 对象
 response 对象主要将JSP 处理数据后的结果传回到客户端。
 response 对象是实现javax.servlet.http.HttpServletResponse 接口。response对象所提供的方法。
a.设定表头的方法
  void addCookie(Cookie cookie)                新增cookie
  void addDateHeader(String name, long date)   新增long类型的值到name标头
  void addHeader(String name, String value)    新增String类型的值到name标头
  void addIntHeader(String name, int value)    新增int类型的值到name标头
  void setDateHeader(String name, long date)   指定long类型的值到name标头
  void setHeader(String name, String value)    指定String类型的值到name标头
  void setIntHeader(String name, int value)    指定int类型的值到name标头
b.设定响应状态码的方法
  void sendError(int sc)                       传送状态码(status code)
  void sendError(int sc, String msg)           传送状态码和错误信息
  void setStatus(int sc)                       设定状态码
c.用来URL 重写(rewriting)的方法    
  String encodeRedirectURL(String url)         对使用sendRedirect()方法的URL予以编码
3)out 对象
 out对象的类型是javax.servlet.jsp.JspWriter,该类从java.io.Writer类派生,以字符流的形式输出数据。
 out对象实际上是PrintWriter对象的带缓冲的版本(在out对象内部使用PrintWriter对象来输出数据),
 可以通过page指令的buffer属性来调整缓冲区的大小,默认的缓冲区是8kb。
 out 对象能把结果输出到网页上。
 out主要是用来控制管理输出的缓冲区(buffer)和输出流(output stream)。
  void clear( )               清除输出缓冲区的内容
  void clearBuffer( )         清除输出缓冲区的内容
  void close( )               关闭输出流,清除所有的内容
  int getBufferSize( )        取得目前缓冲区的大小(KB)

4)exception对象
 若要使用exception 对象时,必须在page 指令中设定:<%@ page isErrorPage="true" %>才能使用。
 exception提供的三个方法:
  getMessage() 
  getLocalizedMessage() 
  printStackTrace(new java.io.PrintWriter(out)) 

例子(脚本代码)


 <table>
      <input type="checkbox" name="habit" value="Reading"/>读书
      <input type="checkbox" name="habit" value="Game"/>游戏
      <input type="checkbox" name="habit" value="Music"/>音乐
        </table>
      //提交后,获取输入内容
      ${paramValues.habit[0]}
      ${paramValues.habit[1]}
      ${paramValues.habit[2]}

MVC 模式

预备知识
Model:常用javabean去实现,通过各种类来对数据库的数据进行获取,并封装在对象当中(包装类)

View:常用JSP来实现,通过可直接观察的JSP页面来展示我们从数据库中获取的数据。

Controller:常用servlet来实现,通过servlet来获取经过javabean包装过的对象(已存入数据库中的数据),然后再发送数据传输到JSP界面。
在这里插入图片描述

JSP

sendRedirect()函数的作用是重定向网页,向浏览器发送一个特殊的Header,然后由浏览器来做重定向,转到指定的页面。

1.通过response对象的sendRedirect方法重定向:

response.sendRedirect("login.jsp");

2,通过RequestDispatcher对象的forward方法:

<!--请求转发-->
RequestDispatcher rd = request.getRequestDispatcher("login.jsp");
rd.forward(request,response);

3,使用jsp动作指令的方法:与第2中方式相同

<jsp:forward page="login.jsp"></jsp:forward>

现在来说一下二者的区别:
1)过程不同:
response.sendRedirect(“login.jsp”)方式相当于浏览器接收到了响应之后又向服务器发送了一次请求,所以相当于两次请求。request.getRequestDispatcher(“login.jsp”)方式相当于方法调用,在执行当前文件的过程中转向执行目标文件,两个文件(当前文件和目标文件)属于同一次请求。

2)地址栏不同:
esponse.sendRedirect(“login.jsp”)方式下用户在浏览器地址栏中看到的是目标文件的地址,即地址栏会变
request.getRequestDispatcher()方式下用户在浏览器地址栏中看到的是当前文件的地址,即地址栏不变

3)数据共享角度:
request.getRequestDispatcher()是请求转发,前后页面共享一个request ;
response.sendRedirect()是重新定向,前后页面不是一个request。
sendRedirect两次提交,forword一次提交

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!