无需言 做自己 业 ,精于勤 荒于嬉.
- JSP基础 03.@page指令
-
发表日期:2015-02-15 21:20:08 | 来源: | 分类:JSP基础
-
page指令共有以下12中:
1.autoFlush:可以设置为true或false,如果设置为true,当缓冲区满时,到客户端输出被刷新,如果设置为false,当缓冲区满时,将出现异常。表示缓冲区溢出。默认为true,
2.buffer:指定到客户端输出流的缓冲模式,如果none则表示不设置缓冲区;如果指定数值,那么输出的时候就必须使用不小于这个值的缓冲区进行缓冲。此属性要和autoFlush一起使用。默认不小于8K,根据不同的服务器可以设置。
3.contentType:定义JSP字符的编码和页面响应的MIME类型,如:contentType="text/html;charset=utf-8"
4.errorPage:定义此页面出错时要显示的页面,此属性要与isErrorPage一起使用。
5.extents:主要定义此页面产生的Servlet是从哪个父类扩展而来,例如extends="父类名称"。
6.import:此页面要导入哪几个包,和java一样。例如:import="java.IO.*"
7.info:此页面的信息,例如info="text info"
8.isErrorPage:可以设置true或false,表示此页面是否是处理出错的页面,如果是true,则errorPage指定的页面出错时才可跳转到此页面进行错误处理,如果设置成false,则无法处理。
9.isThreadSafe:可以设置为true或false,表示此页面是否是线程安全的,如果为true,表示一个JSP页面可以处理多个用户的请求,如果是false,则此页面一次只能处理一个用户请求。
10.language:定义脚本语言,参数只能说java,应为jsp只支持用java写啊。
11.pageEncoding:JSP页面的字符编码。
12.session:可以设置为true或false。是否开启session会话。
实例:
<%@ page language="java" contentType="text/html;" pageEncoding="utf-8" errorPage="error.html" isErrorPage="true" Encoding="UTF8"%>
<%@ page import = "java.sql.*"%>
比如可以设置mime类型,使页面变换显示形式实现下载为别的格式。
<%@page lanage="java" contentType="application/msword;charset=gbk"%>
<%
response.setHeader("Content-Disposition","attachement;filename=test.doc");
%>
- JSP基础 04.包含指令(两种包含形式静态包含/动态包含)
-
发表日期:2015-02-15 21:20:08 | 来源: | 分类:JSP基础
-
静态包含:
<%@ include file="header.jsp"%>
动态包含:不传参数写法
<jsp:include page="文件路径或|<%=表达式%>" flush="true|false"></jsp:include>
但是当然不传参数的时候尽量要这么写:
<% String str = "active.jsp"; %>
<jsp:include page="文件路径或|表达式(如:%<%=str>)" flush="true|false"/>
动态包含:传参数写法:
<jsp:include page="active.jsp" flush="true">
<jsp:param value="13" name="age"/>
<jsp:param value="<%=str%>" name="str"/>//也可以传递变量
</jsp:include>
包含页面接收参数:<%=request.getParameter("age")%>
两种包含文件类型的不同之处:
静态包含:是先提取内容,再和主文件一同编译,如果主文件中存在变量 String name,<%@ include file="包含文件.jsp"%>中也存在String name,那么程序会报错,提示变量名称重复!
动态包含:是各编译各的,包含文件内容编译了再提取出来,所以不会报错。
根据各方面而言我们选择尽量使用动态包含。
- JSP基础 05.页面跳转指令<jsp:forward
-
发表日期:2015-02-15 21:20:08 | 来源: | 分类:JSP基础
-
不传参数
<jsp:forward page="test.jsp|<%=表达式%>"/>
传参数的
<jsp:forward page="static.jsp">
<jsp:param value="参数名称" name="内容"/>
</jsp:forward>
此跳转非javascript的页面跳转,它的url不变,但内容(运行)的却是跳转后的页面。也就是说把当前页面替换成了设置的页面。我们称之为服务器跳转。
- JSP基础 06.JSP中九个内置对象
-
发表日期:2015-02-15 21:20:08 | 来源: | 分类:JSP基础
-
pageContent:javax.servlet.jsp.PageContext --JSP的页面容器
request:javax.servlet.http.HttpServletRequest --得到用户的请求
response:javax.servlet.http.HttpServletResponse --服务器向客户端的回应信息
session:javax.servlet.http.HttpSession --用来保存每一个用户的信息
application:javax.servlet.ServletContext --表示所有用户的共享信息
config:javax.servlet.ServletConfig --服务器配置,可以取得初始化参数
out:javax.servlet.jsp.JspWriter --页面输出
page:java.lang.Object --表示从该页面中表示出来的一个Servlet实例
exception:java.lang.Throwable --表示JSP页面所发生的异常,在错误页中才起到的作用。
- JSP基础 07.Tomact6.0/7.0+JAVA6.0+JSTL1.2配置
-
发表日期:2015-02-15 21:20:08 | 来源: | 分类:JSP基础
-
JSTL1.1以后根本不需要配置web.xml也不用复制什么tId文件夹
1.1.2:
下载页:http://tomcat.apache.org/download-taglibs.cgi
下载地址:http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/jakarta-taglibs-standard-1.1.2.zip
解压后:将lib中的两个jar放入项目WEB-INF/lib/目录下就OK了!
1.2.1:
JSTL1.1以后jstl.jar和Standard.jar两个文件合并为一个了如:taglibs-standard-xxxx-1.2.1.jar
下载页:http://tomcat.apache.org/download-taglibs.cgi
下载地址:http://apache.fayea.com/tomcat/taglibs/taglibs-standard-1.2.1/taglibs-standard-jstlel-1.2.1.jar
配置:直接将下载的taglibs-standard-jstlel-1.2.1.jar复制到项目WEB-INF/lib/目录下就OK了!
【重点】重启Tomcat服务器,别忘了凡是项目功能配置,组件扩展等都一定要重启服务器的!
- JSP基础 08.0 四种属性范围
-
发表日期:2015-02-15 21:20:08 | 来源: | 分类:JSP基础
-
1.pageContent 当前页面
2.request 当前页面及服务器跳转的页面
3.session 保存范围是当前用户,范围在该次打开的浏览器中本网站所有页面,浏览器关闭消失。
4.application 保存范围是服务器的所有用户都可同步获取。服务器重启消失
x.setAttribute("name","zhangSan");
x.getAttribute("name");
pageContent可以操作四种属性范围
比如说还可以将pageContent设置为request类型
pageContent.setAttribute("name","zhangSan",pageContent.REQUEST_SCOPE);
- JSP基础 08.1 request对象|request.getParameter中文乱码解决
-
发表日期:2015-02-15 21:20:08 | 来源: | 分类:JSP基础
-
实例:
form.html内容:
<form action="request.jsp" method="post">
<input type="text" name="pname"/><input type="submit"/>
</form>
request.jsp内容:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%=request.getParameter("pname") %>//接收表单参数pname
当我们提交字母数字时正常,但是当我们提交中文时,却显示乱码!解决方法:
原因:自从Tomcat5.x开始,GET和POST方法提交的信息,Tomcat采用了不同的方式来处理编码,对于POST请求,Tomcat会仍然使用request.setCharacterEncoding方法所设置的编码来处理,如果未设置,则使用默认的iso-8859-1编码。而GET请求则不同,Tomcat对于GET请求并不会考虑使用request.setCharacterEncoding方法设置的编码,而会永远使用iso-8859-1编码。
方法一:(GET方法提交可能还是不能解决)
request.setCharacterEncoding("UTF-8");//设置接收的字符编码
【重点】但是记得必须将此代码放置到页面代码中任何request的上方,最好放到页面代码顶部,否则无效啊!
方法二:转换为字节数组:
<%=new String(request.getParameter("pname").getBytes("ISO-8859-1"),"UTF-8") %>
原因是表单提交时url默认是ISO-8859-1的字符编码提交方式,我们用字符数组以ISO-8859-1编码接收,然后输出为utf-8的字符串。【对get提交乱码很有效】
- JSP基础 08.2 response对象
-
发表日期:2015-02-15 21:20:08 | 来源: | 分类:JSP基础
-
设置跳转
response.setHeader("refresh", "3;");//每3秒刷新一次
response.sendRedirect("static.html");//跳转到指定页面
response.setHeader("refresh", "3;URL=static.html");//3秒后跳转到指定页面
和html跳转一样<meta HTTP-EQUIV="refresh" content="3;URL=static.html">
设置cookie
Cookie c1= new Cookie("name","eniac");
c1.setMaxAge(3600);//设置有效期(秒)
response.addCookie(c1);
读取cookie
Cookie cookie[] = request.getCookies();
for(int i=0;i<cookie.length;i++){
<%=cookie[i].getName() %>--<%=cookie[i].getValue() %>
}
- JSP基础 08.3 session对象
-
发表日期:2015-02-15 21:20:08 | 来源: | 分类:JSP基础
-
server.xml文件中,对当前虚拟目录/当前项目的session周期设置
<Context path="/JspRoot" docBase="D:AppServJspRoot" reloadable="true">
<Manager className="org.apache.catalina.session.PersistentManager" >
debug=0
saveOnRestart="true"
maxActiveSession="-1"
minIdleSwap="-1"
maxIdleSwap="-1"
maxIdleBackup="-1"
<Store className="org.apache.catalina.session.FileStore" directory="../session" />
</Manager>
</Context>
saveOnRestart:(true/false)配置服务重启工程中对session的处理,若为true,则关闭前把有效的session保存,启动后重新载入。
maxActiveSession:活动状态Session的最大数,为-1时则不限制,否则Session Manager将会把超出的Session对象转移到Session Store中。
minIdleSwap:Session不活动的最短时间,超过该时间,Session Manager 可能会把该Session对象转移到Session Store中,单位为秒。
maxidleSwap:Session不活动的最长时间,超过该时间,Session Manager 将会把该Session对象转移到Session Store中,该Session将不在内存中。
maxidleBackup: Session不活动的最长时间,超过该时间,Session Manager 将会把该Session对象备份到Session Store中,但该Session对象依然存在内存中。
<Store>指定实现持久化的类和Session存放的文件位置,如该例子中指定的类是:org.apache.catalina.session.FileStore,而Session对象存放的目录则是tomcat根目录下的 session文件夹(当然自己创建)
在第四种配置中,配置完后可以写一个简单的jsp页面,在页面上显示本次用户访问的Session ID,然后重起tomcat,再刷新该页面,可以看到该Session Id不变,而在/session目录下自动生成一个以session id为名,以“session”为扩展名的文件。该Session的持久化配置成功。
- JSP基础 08.4 application对象
-
发表日期:2015-02-15 21:20:08 | 来源: | 分类:JSP基础
-
- JSP基础 11.smartUPload
-
发表日期:2015-02-15 21:20:08 | 来源: | 分类:JSP基础
-
- JSP基础 12.0 Servlet简介
-
发表日期:2015-02-15 21:20:08 | 来源: | 分类:JSP基础
-
- JSP基础 12.1第一个Servlet程序
-
发表日期:2015-02-15 21:20:08 | 来源: | 分类:JSP基础
-
项目目录下配置web.xml
<servlet>
<servlet-name>hello</servlet-name>//设一个servlet的名称
<servlet-class>test.canquick.eniac.demo.ServletDemo</servlet-class>//对应的servlet.clss文件
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>//设置对应配置好的servlet的名称
<url-pattern>/helloServlet</url-pattern>//访问路径
http://localhost:xx端口/helloServlet 就可以访问此servlet
</servlet-mapping>
ServletDemo.java类:
package test.canquick.eniac.demo;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletDemo extends HttpServlet {
public void doGet(HttpServletRequest hsrq,HttpServletResponse hsrs) throws IOException{
hsrs.setCharacterEncoding("UTF-8");
PrintWriter out = hsrs.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">");
out.println("<title>123456</title>");
out.println("</head>");
out.println("<body><h1>d标s题d</h1></body>");
out.println("</html>");
out.close();
}
}
- JSP基础 12.2 Servlet读取配置
-
发表日期:2015-02-15 21:20:08 | 来源: | 分类:JSP基础
-
- JSP基础 12.3 Servlet取得内置对象-Session
-
发表日期:2015-02-15 21:20:08 | 来源: | 分类:JSP基础
-
package demo.canquick.eniac.servlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class HttpSessionServletDemo extends HttpServlet {
public void doGet(HttpServletRequest hsr,HttpServletResponse hsrs){
HttpSession hs = hsr.getSession();
System.out.println(hs.getId());
hs.setAttribute("username", "eniac");
System.out.println(hs.getAttribute("username"));
}
public void doPost(HttpServletRequest hsr,HttpServletResponse hsrs){
this.doGet(hsr, hsrs);
}
}
<servlet>
<servlet-name>servletSession</servlet-name>
<servlet-class>demo.canquick.eniac.servlet.HttpSessionServletDemo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>servletSession</servlet-name>
<url-pattern>/servletSession</url-pattern>
</servlet-mapping>
- JSP基础 12.4 Servlet取得内置对象-Application
-
发表日期:2015-02-15 21:20:08 | 来源: | 分类:JSP基础
-
package demo.canquick.eniac.servlet;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HttpApplicationServletDemo extends HttpServlet {
public void doGet(HttpServletRequest hsr,HttpServletResponse hsrs){
ServletContext sc = super.getServletContext();
System.out.println(sc.getRealPath("/"));
}
public void doPost(HttpServletRequest hsr,HttpServletResponse hsrs){
this.doGet(hsr, hsrs);
}
}
<servlet>
<servlet-name>HttpApplicationServletDemo</servlet-name>
<servlet-class>demo.canquick.eniac.servlet.HttpApplicationServletDemo</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HttpApplicationServletDemo</servlet-name>
<url-pattern>/HttpApplicationServletDemo</url-pattern>
</servlet-mapping>
</web-app>
- JSP基础 13.2表达式语言-内置对象
-
发表日期:2015-02-15 21:20:08 | 来源: | 分类:JSP基础
-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>在此处插入标题</title>
</head>
<body>
<%
pageContext.setAttribute("info", "简单的表达式语句pageContext");
request.setAttribute("info", "简单的表达式语句request");
session.setAttribute("info", "简单的表达式语句session");
application.setAttribute("info", "简单的表达式语句application");
%>
<div>
<h3>${info}</h3>
<p>若不存在info属性默认逐级往下获取pageContext-》request-》session-》application</p>
</div>
<dl>
<dt>分别获得各种对象类型的属性</dt>
<dd>${pageScope.info}</dd>
<dd>${requestScope.info}</dd>
<dd>${sessionScope.info}</dd>
<dd>${applicationScope.info}</dd>
</dl>
<ul>
<li>IP:${pageContext.request.remoteAddr}</li>
<li>SID:${pageContext.session.id}</li>
</ul>
<ul>
<li>接收参数:<%=request.getParameter("ref") %></li>
<li>接收参数:${param.ref}</li>
</ul>
<hr/>
</body>
</html>
- JSP基础 13.1表达式语言-集合操作
-
发表日期:2015-02-15 21:20:08 | 来源: | 分类:JSP基础
-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@page import="java.util.*"%>
<html>
<head>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>在此处插入标题</title>
</head>
<body>
<%
List list = new ArrayList();
list.add("张三");
list.add(14);
list.add("www.zhangsan.com");
list.add("zhangsan@163.com");
request.setAttribute("listInfo", list);
%>
<h3>${listInfo[0]}</h3>
<h3>${listInfo[1]}</h3>
<h3>${listInfo[2]}</h3>
<h3>${listInfo[3]}</h3>
<h3>${listInfo[4]}</h3>
<h1>MVC:</h1>
</body>
</html>
- JSP基础 16.0.0 Jstl主要标签分类
-
发表日期:2015-02-15 21:20:08 | 来源: | 分类:JSP基础
-
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
taglibs-standard-impl-1.2.1.jar放到/WEB-INFO/lib/下就可以了。(版本1.2以上)
当然如果不想用远程的标签库:http://java.sun.com/jsp/jstl/core;...
那么我们可以用本地的,把taglibs-standard-impl-1.2.1.jar解压后里面有xx.tId文件复制到/WEB-INFO/lib/下,
然后在web.xml文件中配置,例如:
<jsp-config>//映射标签库文件
<taglib>
<taglib-uri>http://www.canquick.com/jstl/core</taglib-uri>//映射的虚拟访问地址
<taglib-location>/WEB-INFO/lib/c.tid</taglib-location>//真实绝对路径
</taglib>
</jsp-config>
那么我们jsp中可以这样引入,实际上是本地的:
<%@ taglib uri="http://www.canquick.com/jstl/core" prefix="c" %>
- JSP基础 16.1.0 Jstl核心标签库<c:
-
发表日期:2015-02-15 21:20:08 | 来源: | 分类:JSP基础
-
核心标签库中主要有:
<c:catch></c:catch>
<c:choose></c:choose>
<c:forEach></c:forEach>
<c:if test=""></c:if>
<c:import url=""></c:import>
<c:otherwise></c:otherwise>
<c:out value=""></c:out>
<c:param name=""></c:param>
<c:redirect></c:redirect>
<c:remove var=""/>
<c:set></c:set>
<c:url></c:url>
<c:when test=""></c:when>
- 前端开发(1)
- 数据库(0)
- PHP(0)
- PHP杂项(34)
- PHP基础-李炎恢系列课程(20)
- 中文函数手册(0)
- 错误处理 函数(13)
- OPcache 函数(6)
- PHP 选项/信息 函数(54)
- Zip 函数(10)
- Hash 函数(15)
- OpenSSL 函数(63)
- Date/Time 函数(51)
- 目录函数(9)
- Fileinfo 函数(6)
- iconv 函数(11)
- 文件系统函数(81)
- 多字节字符串 函数(57)
- GD 和图像处理 函数(114)
- 可交换图像信息(5)
- Math 函数(50)
- 程序执行函数(11)
- PCNTL 函数(23)
- JSON 函数(4)
- SPL 函数(15)
- URL 函数(10)
- cURL 函数(32)
- 网络 函数(33)
- FTP 函数(36)
- Session 函数(23)
- PCRE 函数(11)
- PCRE 正则语法(19)
- 数组 函数(81)
- 类/对象 函数(18)
- 函数处理 函数(13)
- 变量处理 函数(37)
- SimpleXML 函数(3)
- 杂项 函数(31)
- 字符串 函数(101)
- JAVA(0)
- Android(0)
- Linux(0)
- AI大模型(9)
- 其他(0)
宁公网安备 64010402001209号