JSP基础 业 ,精于勤 荒于嬉.

JSP基础 01.TOMCAT配置

发表日期:2015-02-15 21:20:08 | 来源: | 分类:JSP基础

Tomcatconfweb.xml

<servlet>

    <servlet-name>default</servlet-name>

    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>

    <init-param>

        <param-name>debug</param-name>

        <param-value>0</param-value>

    </init-param>

    <init-param>

        <param-name>listings</param-name>

        <param-value>true</param-value>//这里本来是false改为true

    </init-param>

    <load-on-startup>1</load-on-startup>

</servlet>


//设置默认索引页

<welcome-file-list>

    <welcome-file>index.html</welcome-file>

    <welcome-file>index.htm</welcome-file>

    <welcome-file>index.jsp</welcome-file>

</welcome-file-list>


//设置错误页

项目目录/WEB-INFO/web.xml

<error-page>

    <error-code>400</error-code>

    <location>/lib/error.html</location>

    <error-code>500</error-code>

    <location>/lib/error.html</location>

</error-page>




阅读全文 »

JSP基础 02.JSP标签形式

发表日期:2015-02-15 21:20:08 | 来源: | 分类:JSP基础

全局常量:

<%!

public static final String name = "eniac";

%>


普通语句

<%

String name = "xiaoMing";

class test{

 ........

}

%>

//易错点:当普通语句是单行时如:<%String name = "xiaoMing";%>要记得语句末尾一定要加;


输出语句:

<%

//java中我们是这样打印System.out.print();

//jsp中我们不用也不能写System了,可以这样直接写

out.print("xxxx");

%>

当然在jsp中这样写的是傻瓜,我们可以用简化写法

<%="xxxx"%>即表示打印字符串"xxxx",同out.print("xxxx");一样。

<%=要输出的内容%>要记得语句末尾不能加;


阅读全文 »

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基础 09.安全配置

发表日期:2015-02-15 21:20:08 | 来源: | 分类:JSP基础

网站根目录的WEB-INF文件夹是不可见的,用户无法访问该文件夹下的资源。

可以映射,web.xml

<!-- 

dbInit.jsp文件在/WEB-INF/下,安全受到保护,但是不能访问。

将/WEB-INF/dbInit.jsp的文件

映射为

/hello.db

可以访问/hello.db实际为/WEB-INF/dbInit.jsp

并且可以配置dbInit.jsp的一些信息

只有/hello.db可以获取

 -->


<servlet>

<servlet-name>db</servlet-name>

<jsp-file>/WEB-INF/dbInit.jsp</jsp-file>

<!-- 以下只对hello.eniac文件有作用,对其他页面没有用 -->

<init-param>

<param-name>dbDriver</param-name>

<param-value>org.git.mm.mysql.Driver</param-value>

</init-param>

<init-param>

<param-name>dbUrl</param-name>

<param-value>jdbc:mysql://localhost:3306/jsp</param-value>

</init-param>

</servlet>

<servlet-mapping>

<servlet-name>db</servlet-name>

<url-pattern>/hello.db</url-pattern>

</servlet-mapping>


读取:只有/WEB-INF/dbInit.jsp文件才可以读取信息

<%

String dbDriver = config.getInitParameter("dbDriver");

String dbUrl = config.getInitParameter("dbUrl");

%>

<h1>数据库驱动:<%=dbDriver %></h1>

<h1>数据库地址:<%=dbUrl %></h1>


阅读全文 »

JSP基础 10.javaBean介绍

发表日期:2015-02-15 21:20:08 | 来源: | 分类:JSP基础

JavaBean是使用Java开发的一个可重用性的组件,使java开发中减少重复代码。使开发更快捷。

如果你还是不理解什么是JavaBean,那么打个直白的比方,可能不是很确切但就是这么个意思:

如果你有PHP或其他语音基础,或没有。。JavaBean其实就是一堆我们在开发项目中经常使用的一些类的集合/打包。

比如说数据库连接类/验证码类/文件上传类,可能我们大部分的项目都需要用,我们就没有必要做一个项目写一次这个代码了,那么我们把它写成一个类,以后在用我们直接调用就行了,就不用再写一次了!我们称为JavaBean。。。其实java是很装逼的语言,不要害怕java,不要看到什么JavaBean、spring什么的单词就害怕了,他就是把最基础的功能起个名字装装逼,根本不难,没什么特别的。

VO:值对象,存放所有的传递数据的操作上。

POJP:简单的java对象。

TO:传输对象,一个类必须实现Serializable接口后称为传输对象。

【ZhuangBi.java】

package testBean.canquick.yyd.demo;

public class ZhuangBi {

private String name;

private int age;

public void setName(String name){

this.name = name;

}

public void setAge(int age){

this.age = age;

}

public String getInfo() {

return "姓名:"+this.name+"----年龄:"+this.age;

}

}


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

【javaBean.jsp】

//javaBean可以初始化对象,然后进行简单的setter

<jsp:useBean id="zbBi" scope="page" class="testBean.canquick.yyd.demo.ZhuangBi">

<jsp:setProperty property="name" value="zhangSan" name="zbBi"/>

<jsp:setProperty property="age" value="20" name="zbBi"/>

</jsp:useBean>

<%=zbBi.getInfo() %>//姓名:zhangSan----年龄:20


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

//javaBean还可以通过表单对初始化的对象进行简单的setter

【form.html】

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>在此处插入标题</title>

</head>

<body>

<form action="javaBean.jsp" method="post">

<p>name:<input type="text" name="name" value="ZhangSan"/></p>

<p>age:<input type="text" name="age" value="20"></p>

<p><input type="submit"></p>

</form>

</body>

</html>

【javaBean.jsp】

// id="zbBi"代表为给初始化的ZhuangBi类赋值,可以解释为:ZhuangBi zbBi = new ZhuangBi();

//scope="page"即变量zbBi作用域为page,当然也可以是session、request、application等四种类型

<jsp:useBean id="zbBi" scope="page" class="testBean.canquick.yyd.demo.ZhuangBi">

//property="*"代表设置表单中的所有字段,可以解释为zbBi.setName("ZhangSan");zbBi.setAge(20);

<jsp:setProperty property="*" name="zbBi"/>

</jsp:useBean>

<%=zbBi.getInfo() %>//姓名:zhangSan----年龄:20

如果:

//property="age"代表只设置表单的age字段,其它字段相同..

//property="age" name="zbBi" 可以解释为zbBi.setAge(20);(20代表的是表单form中age传过来的参数为20)

<jsp:setProperty property="age" name="zbBi"/>

//那么<%=zbBi.getInfo() %>为:姓名:null----年龄:20





阅读全文 »

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>


阅读全文 »

全部博文(1580)
集速网 copyRight © 2015-2022 宁ICP备15000399号-1 宁公网安备 64010402001209号
与其临渊羡鱼,不如退而结网
欢迎转载、分享、引用、推荐、收藏。