我的JSP学习笔记

 

 

0. JSP简介

1. JSP语法

2. 内置对象

3. JAVABEAN

4. 文件操作

5. 数据库操作

6. JAVA SERVLET

7. JSP实用XML
 

附录一:数据库连接池的实现

附录二:servlet例子

附录三:servlet部署文件例子

附录四:DOM例子

 

 
0.JSP简介

 

 

 

 

 

 

 

配置环境变量:

JAVA_HOME——c:/java/jdk

CLASSPATH——c:/java/jdk/lib/tool.jar…

Path——c:/java/jdk/bin

 

CATALINA——c:\tomcat

CATALINA_BASE——c:\tomcat

CATALINA_HOME——c:\tomcat

Tomcat_home——c:\tomcat

 

Tomcat配置虚拟目录:

conf/server.xml中修改:

<Context path=”/hello” docBase=”d:/myjsp/zhulin” debug=”0” reloadable=”true”/>

 

当多个用户同时访问一个JSP页面时,Tomcat服务器为每个客户启动一个线程,该线程负责执行常驻内存的字节码文件来响应响应客户的请求。

1.JSP语法  

 

<%!  %>标记之间声明变量和方法

 

<%   %>程序片

<%=  %>java表达式

 

<!-- --> html注释

<%-- --%>JSP注释

 

指令标记:

<%@ include file=”” %> 在JSP页面某处将某个文件整体嵌入

 

动作标记:

<jsp:include page=”a.jsp”/>或          <jsp:include page=”a.jsp”>

                                                                          <jsp:param name=”a” value=”<%=mya %>”/>        …

</jsp:include>

 

此标记也是将一个文件嵌入到当前页面,但与指令标记include所不同的是:

指令标记include:在编译阶段就处理所需的文件,页面执行速度快;

动作标记include:JSP页面运行时才加载,处理速度慢,其优点是可以用param标签。

 

<jsp:forward page=”a.jsp”/>或        <jsp: forward page=”a.jsp”>

                                                                          <jsp:param name=”a” value=”<%=mya %>”/>        …

</jsp: forward >

停止当前页面的继续执行,而转向执行page指定的页面。且浏览器的url地址不变

 

 

 

 

 

 

 

2.内置对象

Request:可以获取客户机信息

 

Response:可以设置contentType属性

                     也可以设置HTTP头,如response.setHeader(“refresh”,”5”);//5秒刷新一次

                     可以用于重定向:response.sendRedirect(url);

 

Sessionvoid setAttribute(String,Object)

                    Object getAttribute(String)

                    Void remove(String)

           tomcatconf/web.xml中设置session时间,单位为分钟:

           <session-config><session-timeout>30</session-timeout></session-config>

                   

Applicationvoid setAttribute(String,Object)

                             Object getAttribute(String)

                             Void removeAttribute(String)

 

 

Out:输出流 如out.println();

3.JAVABEAN

javabean类的构造方法必须是public,无参数的

 

使用bean时:1. 先倒入该类所在的包:<%@ page import="zhulin.*" %>

                 2. 加载要使用的bean:<jsp:usebean id="user" class="zhulin.user" scope="page" />

                 3. 使用<jsp:setProperty name="user" property="*" />可以将当前表单中的控件的值设定给BEAN

4.文件操作

File类:获取文件(文件夹)本身的一些信息

用文件字节流读写文件:FileInputStream:顺序地读取文件,只要不关闭流,每次调用read方法都顺序地读取源中其余内容。

                             FileOutputStream:顺序地些文件,只要不关闭流,每次调用write方法都顺序地向输出流中写入内容。

用文件字符读写文件:FileReader,FileWriter

        字节流不能直接操作Unicode字符,所以在读汉字时容易出现乱码,而字符流就可以避免这个现象。

BufferedReader,BufferedWriter类用来提高读写效率。

 

RandomAccessFile流的指向既可以作为源也可以作为目的地。

5.数据库操作

数据库连接方式:

     1.JDBC-ODBC桥接器:优点:ODBC提供了数据库访问的通用平台,使得JDBC可以访问几乎所有类型的数据库。

                                 缺点:使得应用程序依赖于ODBC,移植性差。

                                 代码如:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

                                            Connection con=DriverManager.getConnection("jdbc:odbc:zhulin","sa","sa");

                                            Statement st=con.createStatement();

                                            ResultSet rs=st.executeQuery("select * from users");

    2.用纯JAVA数据库驱动程序:用JAVA语言编写的数据库驱动叫做纯JAVA数据库驱动。

                                 代码如:Class.forName("org.gjt.mm.mysql.Driver");

                                            Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/zhulin","sa","sa");

                                            Statement st=con.createStatement();

                                            ResultSet rs=st.executeQuery("select * from users");

 

提高数据库操作的方法:

     1. 数据库连接池

     2. 使用预处理语句:Connection.prepareStatement(sql);

附录:数据库连接池的实现

6.JAVA SERVLET

创建一个servlet对象的类就是编写javax.servlet.http包中的HttpServlet类的子类。

 

为了能让TOMCAT服务器用字节码文件创建对象,必须为Tomcat服务器编写一个部署文件。

tomcat服务器通过读取web.xml管理servlet对象。

 

HttpServlet类的方法:

init()

service()

destory()

doGet()

doPost()

 

HttpServletResponse类的重定向方法:sendRedirect():重定向的目标页面无法使用request获取用户提交的数据。

RequestDispatcher类的转发方法:forward():转发的目标页面可以使用request获取用户提交的数据。

附录:servlet例子

        servlet部署文件例子

 

7.JSP实用XML

DOM(document object model):sun公司提供了DOM解析器,解析XML文件的API(java API for XML parsing,JAXP)

 附录:DOM例子

 

 

 

 

附录一:数据库连接池的实现

/**
 * 数据库连接池
 * 作者:朱林
 * 版本:1.0
 * 日期:2009.12.23
 */

package dboperate;
import java.sql.*;
import java.util.LinkedList;

public class Conlib
{
 String conn_str="jdbc:mysql://localhost:3306/zhulin";//---------数据库
 String username="zhulin";//---------------数据库用户名
 String password="000000";//-------------数据库密码
 int connum=10; //连接池容量
 
 LinkedList<Connection> list; //存放Connection对象的链表
 
 /**
  * 初始化
  */
 public Conlib()
 {
  try
  {
   Class.forName("org.gjt.mm.mysql.Driver");
  }
  catch(java.lang.ClassNotFoundException e)
  {
   System.err.println("驱动登记异常:"+e.getMessage());
  }
  
  list=new LinkedList<Connection>();
  
  //创建连接池
  for(int k=0; k<connum; k++)
  {
   try
   {
    Connection conn=DriverManager.getConnection(conn_str,username,password);
    list.add(conn);
   }
   catch(SQLException ex)
   {
    System.err.println("数据库连接异常:"+ex.getMessage());
   }
  }
 }
 
 /**
  * 获取连接池中的一个连接
  */
 public synchronized Connection getOneConnection()
 {
  if(list.size()>0)
  {
   return list.removeFirst();
  }
  else
   return null;
 }
 
 /**
  * 放回一个连接
  */
 public synchronized void putBackOneConnection(Connection con)
 {
  list.addFirst(con);
 }
}

 

 

附录二:servlet例子

package com.akazam;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class helloservlet extends HttpServlet
{

//init完成必要初始化工作
 public void init(ServletConfig config) throws ServletException
 {
  super.init(config);
 }
 

//当servlet对象创建后会自动调用执行service函数,响应客户的请求
 public void service(HttpServletRequest request,HttpServletResponse response) throws IOException
 {
  response.setContentType("text/html;charset=GBK"); //设置响应的MIME类型
  PrintWriter out=response.getWriter(); //获取一个向客户发送数据的输出流
  out.println("<html><body>hello</body></html>");
 }
}

 

 

附录三:servlet部署文件例子

<?xml version="1.0" encoding="UTF-8"?>

<web-app>

      <servlet>

            <servlet-name>hello</servlet-name>

            <servlet-class>com.akazam.helloservlet </servlet-class>

      </servlet>

      <servlet-mapping>

            <servlet-name>hello</servlet-name>

            <url-pattern>/hello</url-pattern>

       </servlet-mapping>

</web-app>

 

 

 

附录四:附录:DOM例子

package com.akazam;
import java.io.*;
import org.w3c.dom.*;
import javax.xml.parsers.*;

public class DOMparse
{
 public DOMparse()
 {
  try
  {
   //创建DOCUMENT对象读取XML文件
   DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
   DocumentBuilder builder=factory.newDocumentBuilder();
   Document document=builder.parse(new File("d:\\a.xml"));
   
   Element root=document.getDocumentElement(); //获取根节点
   NodeList elementNodes=root.getElementsByTagName("姓名");
   //...
  }
  catch(Exception e){}
 }
}

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园的建设目标是通过数据整合、全面共享,实现校园内教学、科研、管理、服务流程的数字化、信息化、智能化和多媒体化,以提高资源利用率和管理效率,确保校园安全。 智慧校园的建设思路包括构建统一支撑平台、建立完善管理体系、大数据辅助决策和建设校园智慧环境。通过云架构的数据中心与智慧的学习、办公环境,实现日常教学活动、资源建设情况、学业水平情况的全面统计和分析,为决策提供辅助。此外,智慧校园还涵盖了多媒体教学、智慧录播、电子图书馆、VR教室等多种教学模式,以及校园网络、智慧班牌、校园广播等教务管理功能,旨在提升教学品质和管理水平。 智慧校园的详细方案设计进一步细化了教学、教务、安防和运维等多个方面的应用。例如,在智慧教学领域,通过多媒体教学、智慧录播、电子图书馆等技术,实现教学资源的共享和教学模式的创新。在智慧教务方面,校园网络、考场监控、智慧班牌等系统为校园管理提供了便捷和高效。智慧安防系统包括视频监控、一键报警、阳光厨房等,确保校园安全。智慧运维则通过综合管理平台、设备管理、能效管理和资产管理,实现校园设施的智能化管理。 智慧校园的优势和价值体现在个性化互动的智慧教学、协同高效的校园管理、无处不在的校园学习、全面感知的校园环境和轻松便捷的校园生活等方面。通过智慧校园的建设,可以促进教育资源的均衡化,提高教育质量和管理效率,同时保障校园安全和提升师生的学习体验。 总之,智慧校园解决方案通过整合现代信息技术,如云计算、大数据、物联网和人工智能,为教育行业带来了革命性的变革。它不仅提高了教育的质量和效率,还为师生创造了一个更加安全、便捷和富有智慧的学习与生活环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值