国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

jsp和編碼

2019-11-08 18:46:00
字體:
來源:轉載
供稿:網友

jsp生成頁面

 訪問xxxx/xxx/hello.jsp?name=tom。

1.查找jsp對應的servlet存在,就直接訪問。

2.不存在,就解析jsp,翻譯成servlet源文件,編譯成servlet類,初始化運行。

只有第一次訪問,或者修改jsp或者編譯后的servlet文件刪除了才會重新解析編譯。

Jsp語法

Jsp指令

     Jsp使用<%@  指令名  屬性=“值”%>一般常用page,include,taglib。

1.Page指令

page指令用來指定使用的編程語言,導入的軟件包等等。

<%@ page 屬性1=“值1” 屬性2=“值2”%>

2.include指令

       用來包含其他文件內容,可以是jsp或html文件。靜態包含。

<%@ include file="xxx.jsp"%>

Jsp聲明

<%! int a=10;int b=20;%>java程序片段

<% int a=10;if(a==10){%>a is 10.<%}else{%>a is not 10<%}%>Java表達式

<%=request.getParameter("name");%>
<%--   注釋   --%>隱含對象

          jsp可以使用固定的變量來訪問隱含對象。

請求轉發跟servlet一樣

<jsp:forward page="轉發的url">          在這句話前后的顯示代碼都沒用(比如<p>hello world</p>)。跟servlet一樣,當前的響應結果是沒有用的,只有轉發到一個地址后的響應結果有用。

         轉發后的jsp里面可以使用request和response。因為轉發共用HttpServletRequest和HttpServletResponse。

<jsp:forwars page=""> <jsp:param name="" value=""/>//添加參數在<jsp:include>中也可以使用<jsp:param name="" value=""/></jsp:forward>

包含

<jsp:include page="">//跟include指令一樣都可以包含文件,但是指令是靜態包含,這個是動態包含靜態包含:就是解析的時候把代碼和jsp文件一起解析,然后編譯,加載。

非首次訪問,沒更新就不重新解析。靜態包含更新了,有些容器(tomcat)會監測更新然后重新解析編譯。有些不會,只能刪除jsp生成的servlet文件和類文件,然容器重新解析。jsp更新了,應該重新解析。

動態包含:運行jsp時解析包含的文件。

flush屬性:true指在包含之前jsp就把響應結果發給客戶。默認為false。

一般不會變的內容用靜態包含,會變的內容用動態包含。

使用servlet或jsp要在web.xml中配置

     <servlet>       <!-- 聲明Servlet對象 -->       <servlet-name>FirstServlet</servlet-name>       <!-- 上面一句指定Servlet對象的名稱 -->       <servlet-class>com.ningmeng.FirstServlet</servlet-class>或者使用<jsp-file>/xxx.jsp</jsp-file>用jsp來當servlet       <!-- 上面一句指定Servlet對象的完整位置,包含包名和類名 -->   </servlet>   <servlet-mapping>       <!-- 映射Servlet -->       <servlet-name>FirstServlet</servlet-name>      <!--<servlet-name>與上面<Servlet>標簽的<servlet-name>元素相對應,不可以隨便起名  -->      <url-pattern>/FirsetServlet</url-pattern>       <!-- 上面一句話用于映射訪問URL -->   </servlet-mapping>Jsp預編譯

        第一次訪問可能會等待很長一段時間,所以可以進行預編譯。

..../hello.jsp?jsp_PRecompile=true就會生成class文件,刪除hello.jsp,在web.xml中配置路徑為生成的class文件。

作用:

1.提高了響應速度。2.應用發布后,可以防止他人修改jsp文件或者查看。因為jsp文件刪除了。

PageContext

使用場合:jsp文件java程序片段中;jsp文件自定義標簽的處理類。

用法:

1.向各種范圍存取屬性。

2.得到其他對象的引用方法。

3.用于請求轉發和包含的方法。

1.存取屬性值。

getAttribute(String name);getAttribute(string name , int scope);在scope中取值setAttribute(String name , Object value, int scope);在scope中設置值removeAttribute(string name , int scope);移除scope中的值findAttribute(String name);依次從小到大的范圍查找,找到馬上返回。否則為null。int getAttributeScope(String name);返回屬性范圍,沒有返回0
PageContext.PAGE_SCOPE取值為1,頁面范圍//scope屬性PageContext.REQUEST_SCOPE取值為2,請求范圍PageContext.session_SCOPE取值為3,會話范圍PageContext.application_SCOPE取值為4,應用范圍2.得到其他對象的引用

getPage();getSession();getRequest();getResponse();getServletConfig();getServletContext();getOut()自定義標簽處理類中不能使用servletContext,request,response,可以使用pageContext來得到。

3.請求轉發和包含

forward(String url),include(String url);

因為自定義標簽中無法使用<jsp:forward>和<jsp:include>.所以使用pageContext來實現。

編碼

                request.setCharacterEncoding("utf-8");//對post有用,因為post數據在request域中.對get沒用,因為數據在header中		String a = request.getParameter("name");				String b= request.getParameter("value");//post和get都可以用。		String c = new String(b.getBytes("ISO-8859-1"),"UTF-8");//一般瀏覽器請求的都是iso-8859-1編碼。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新安县| 连城县| 留坝县| 安溪县| 荆门市| 绿春县| 金乡县| 伊川县| 岳阳市| 加查县| 彩票| 搜索| 山丹县| 集贤县| 周宁县| 阿拉善左旗| 忻州市| 莎车县| 青川县| 克什克腾旗| 视频| 屏南县| 西华县| 泽库县| 乌审旗| 龙门县| 江孜县| 安仁县| 花垣县| 什邡市| 临颍县| 鄱阳县| 通州市| 泰兴市| 定边县| 福清市| 平果县| 宝丰县| 青冈县| 哈巴河县| 定边县|