JSp基础知识

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->

    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->

    <!--[if lt IE 9]>

      <script src="http://cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script>

      <script src="http://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>

    <![endif]-->



    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1">





需要的三个包:



    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->

    <script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>

    <!-- Include all compiled plugins (below), or include individual files as needed -->

    <script src="js/bootstrap.min.js"></script>



    <link href="css/bootstrap.min.css" rel="stylesheet">





jsp的环境搭建:需要tomcat

web程序



什么是静态网页和什么是动态网页

需要html css 数据库 和高级语言 java c#  js jquery xml 文档技术



环境开发 jdk tomcat服务器介绍: web服务器 可以解析html css  jsp和servlet容器



web结构:

bin,conf lib logs temp webapps work(把jsp生成的servlet放在目录下)



手写web

创建一个项目目录my.jsp, 然后创建一个WEB_INF文件夹然后在改文件下创建一个class文件夹

和一个lib文件夹 以及以个web.xml文件 然后测试运行



WEB-INF详解  javaweb的、一个安全资源 用户不可以访问  web.xml



<welcome-file-list>haha.jsp</welcome-file-list>修改了web.xml需要重启文档



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

javaweb虚拟路径

项目名称就可以称之为虚拟路劲



修改虚拟路径  在首选项的web选项



修改默认编码 在web选项



················

修改tomcat默认端口号



在tomcat conf/servlet.xml

8080端口 timeout=20000



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

JSP简介   JAVA SERVER PAGES

动态开发技术

JSP元素构成

JSP生命周期



JAVA平台,安全性高,适合开发大型

ASP相反

PHP LAMP



~~~~~~~~~~~~~~~~

jsp指令  静态内容 注释 声明 小脚本 表达式

】

JSP三种指令 

page位于JSP顶端<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>



include指令 可以将一个web文件嵌入  可以解析JSP

Taglib指令: 指令





JSP注释可看见





JSP生命周期: 用户发出请求  服务器接受用户请求, 会判断是否为第一次

如果是第一次会转换为servlet (也是椅个java类,)在编译时候运行 值执行一次,然后解析jspService()方法



jsp也是常住内存,可以访问速度很快。 用户请求一次就是椅个线程,也可以多线程,但是多线程有临界的危险





--------------------------



JSP内置对象

内置对象介绍

四中作用范围

out

request /respongse

seeion

application

其他对象

项目案例



~~~~~~内置对象不需要被new  例如OUT。print()不需要被new

九大内置对象 不常用的有

page pageContext exception config



~~~~~~~~~~~~~~~~~~~~~~~~~~

什么是缓冲区?

缓冲区:Buffer,所谓缓冲区就是内存的一块区域用来保存临时数据



JSP内置对象中的out

他是JSPWerite类的实例 想客户端打印

clear()清除缓冲区,但是在flush()之前调用会跑出异常

clearBuffer 区别就是不会跑出异常

flush()讲缓冲区的字节大小输出

getRemaining  范湖缓冲区还有多少剩余空间

isAutoFlush是自动刷新缓冲区

close()是关闭

getBufferSize()获得字节大小



在这里需要注意的是在flush()方法之后调用clear()方法会跑出异常, 但是clearBuffer()不会

-----------------------

get/post





request对象 HttpServletRequest类的实例

String getParamter(String name)请求乱码

String[] getParamterValue(数组)



解决乱码:tomcat提交表单默认的是ISO-8859-1 

解决方法一:要跟用户注册的字符集一样

<%

    request.setCharacterEndciond(“utf-8”);



%>



通过Url请求乱码  使用上面无法解决

需要需要servlet配置文档conf/servler 文件下的web.xml 在修改端口的末尾加上URIEncoding="utf-8"



~~~~~~~~~~~~~~~~(快速个格式化代码 ctrl+shift+f)



代码演示

<form action="login.jsp" method="get">

    <input type="text" value="请输入用户" name="username">

    <br/>

    爱好:

    <input type="checkbox" name="habit" value="篮球">篮球

    <input type="checkbox" name="babit" value="足球">足球

    <input type="checkbox" name="habit" value="羽毛球">羽毛球

    <br/>

    性别:

    <input type="radio" value="" name="sex"><input type="radio" value="" name="sex"><input type="submit" value="提交"> 

~~~~~~~~~~~~~~~~~~~~~~~~~

    <a href="login.jsp?sex=aaaa">超链</a>



</form>



login.jsp代码实现

    <%

        request.setCharacterEncoding("UTF-8");

        String username = request.getParameter("username");

        out.print("用户名:"+username);

        String[] arr = request.getParameterValues("habit");

        String sex = request.getParameter("sex");

        if (arr != null) {

            for (int i = 0; i < arr.length; i++) {



                out.print("兴趣爱好:"+arr[i] + " &nbsp;&nbsp;");

            }

        }

        out.print("性别:"+request.getParameter("sex"));

    %>





存储属性 request  setArrtibute("password","123456"); getArrtibute("pass");



getContentType() MIME协议的类号

getProtocol()返回请求用协议类型及版本号

getServName()返回接受请求的服务器主机名

getServerPort()

get字符编码

get文件长度(单位是字节)getContentLength()

getIP地址  getRemoteAddr()

获得真实路径 getRealPath()

获得请求上下文路径getContexttPath()



-----------------------

response对象 很少直接使用到

访问页面 只对当前页面有效,其他页面无效

response方法



getCharacterEncoding()返回字符集

setContentType(String type)  MIME类

getWrite()  可以向浏览器输出  和out对对象有区别  输出流总是首先打印

sendRedirect()重定向



请求转发和请求重定向的区别 

首先重定向是respong对象, 有两次请求, URI会发生相应的改变

request.getRequestDispatcher().forward(req,resp);只请求一次, URI不会改变



---------------------

Session

什么是Session?

表示客户端与服务器的一次对话,从访问网站和关闭网站时间 就是一次会话



实例:京东,天猫

用户登陆,浏览商品界面, 下单, 确认订单, 属于一次会话,Session 保存在服务器中

不同用户保存不同的、Session



Session是HttpSession的实例

getCreateTime() 创建时间

getId()  JSP引擎唯一的ID

setAttribute(String name,Object value); 在其他页面了可以调用getAttribute()获得值



String [] getValueNames()  返回Session可用数组







getMaxInactiveInterval()  返回请求会话最大时间,同样可用设置时间 使用set方法



--------------

生命周期

只要浏览器一关闭这个Session会话就结束, 但是会话没有被销毁,还存在,只是这个时候

客户端没法和服务端进行校验了, getId()不同了



销毁会话有三种方式:



服务器重启,调用session.ivalidate() Session过期



超时时间 默认为30分钟  

还有一种方法修改超时时间项目的web.xml





<session-config>

    <session-timeout>1<session-timeout>

<session-config>





--------

application对象 

实现了用户间的数据的共享,  可存放全局变量

开始于服务器的启动, 终止服务器的关闭 

在用户、的前后的链接或不同用户之间的链接中 , 可以对application对象同意属性进行操作 

服务器的启动和关闭决定了application的生命

application对象ServerContext的实例 



方法常用有三个 

设置属性 和获取属性  以及获取引擎版本号



Page对象   Content  config初始化信息



exception对象



需要isErrorPage=true  errorPage=“error.jsp”

方法

getMessage()

toSring()

printStackTrace()

Fill异常





javaBean

简介

设计原则 

如何使用

userBean

getProperty  set

java四个作用范围



设计原则:

必须共有  必须有构造函数  属性私有  用get 和set调用

 

你可能感兴趣的:(jsp)