您的位置:首页 > Web前端 > JavaScript

jsp/servlet入门

2015-04-14 14:44 316 查看

tomcat发布目录设置

编辑tomcat/conf/server.xml

在<Host>和</Host>间添加如下:<Context path="/myapp" docBase="d:/myapp" debug="0" reloadable="true"></Context>

启动tomcat后即可访问:http://localhost:8080/myapp

web应用目录结构

d:/myapp/*.jsp

d:/myapp/WEB-INF/web.xml

d:/myapp/WEB-INF/classes/ 保存*.class文件

d:/myapp/WEB-INF/lib/ 保存*.jar文件

jsp基础知识

原理:jsp由系统编译成servlet,servlet负责相应用户请求。

注释:<%--注释--%>

声明:<%!声明变量和函数%>

输出表达式:<%=输出表达式%>

连接数据库jsp实例:test.jsp

<%@ page import="java.sql.*"%>
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<!DOCTYPE html>
<html>
<head>
<title>连接数据库脚本测试</title>
</head>
<body>
<table bgcolor="yellow" border="1" width="300px">
<%
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from user");
while (rs.next()) {
%>
<tr>
<td><%=rs.getString(1)%></td>
<td><%=rs.getString(2)%></td>
<td><%=rs.getString(3)%></td>
</tr>
<%
}
%>
</table>
</body>
</html>


编译指令:page、include、taglib <%@ 编译指令名 属性名="属性值"... %>

动作指令:jsp:forward/jsp:param/jsp:include/jsp:plugin/jsp:useBean/jsp:setProperty/jsp:getProperty

package com.zzz.lcy;
public class Person {
String name;
int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
}


默认构造函数不能少,编译javac Person -d d:/myapp/WEB-INF/classes/

<%@page language="java" contentType="text/html; charset=utf-8"%>
<!DOCTYPE html>
<html>
<head>
<title>BeanTest</title>
</head>
<body>
<jsp:useBean id="beanTest1" class="com.zzz.lcy.Person" scope="page"></jsp:useBean>
<jsp:setProperty property="name" name="beanTest1" value="lcy" />
<jsp:setProperty property="age" name="beanTest1" value="34" />
<jsp:getProperty property="name" name="beanTest1" />
<jsp:getProperty property="age" name="beanTest1" />
</body>
</html>


内置对象:application/config/exception/out/pageContext/request/response/session

参考:/content/4005354.html

servlet配置

编辑d:/myapp/WEB-INF/web.xml

在<webapp></webapp>间添加如下:

<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>zzz.lcy.servlet.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/servlet/HelloWorldDemo</url-pattern>
</servlet-mapping>

注意:<servlet-name>必须对应上

访问网址:http://localhost:8080/myapp/servlet/HelloWorldDemo

package zzz.lcy.servlet;
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 HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) {
response.setContentType("text/html;charset=utf-8");
try {
PrintWriter out = response.getWriter();
out.println("hello, world.");
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response) {
doGet(request, response);
}
}


jsp论坛实例(部分代码)

javabean

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
public class FilterTest implements Filter {
private FilterConfig config;
public void destroy() {
config = null;
}
public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
ServletContext context = this.config.getServletContext();
long before = System.currentTimeMillis();
System.out.println("开始过滤");
HttpServletRequest req = (HttpServletRequest) arg0;
context.log("已经获得请求地址: " + req.getServletPath());
arg2.doFilter(arg0, arg1);
long after = System.currentTimeMillis();
context.log("过滤结束");
context.log("请求被定位到: " + req.getRequestURI() + ", 花费时间: " + (after - before));
}
public void init(FilterConfig arg0) throws ServletException {
config = arg0;
}
}


View Code
<filter>
<filter-name>log</filter-name>
<filter-class>xx.yy.FilterTest</filter-class>
</filter>
<filter-mapping>
<filter-name>log</filter-name>
<servlet-name>*</servlet-name>
</filter-mapping>

监听器Listener

Listener的作用类似于load-on-startup,用于在web应用启动时,启动某些后台程序,这些后台程序负责为系统运行提供支持。使用Listener需要两步:

1) 创建Listener实现类。需要实现ServletContextListener接口;

2) 在web.xml中配置Listener。<listener><listener-class>xx.yy.TestListener</listener-class></listener>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: