Javaweb
基本格式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>网页标题</title>
<style tpye="text/css">
css样式
</style>
<script type="text/javascript">
函数编写
window.onload=function()
{
var entity=document.getElementById("id值");
var string=String(form.id值.value);
var width=parseInt(id值.style.width);
}
</script>
</head>
<body>
正文
</body>
</html>
解决乱码
servlet解码(接收数据)
request.setCharacterEncoding("utf-8");
浏览器解码(返回数据)
response.setContentType("text/html;charset=utf-8");
获取请求参数
String 参数值 = request.getParameter("参数名");
保存数据
HttpSession session = request.getSession();
session.setAttribute("参数名", 参数);
跳转
重定向
response.sendRedirect("路径");
请求转发
RequestDispatcher rd=request.getRequestDispatcher("路径");
rd.forward(request,response);
JSP(Java Server Page)
<%java代码%>
<%!变量或函数%>
<%=表达式%>
JSP指令
page指令
<%@page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
include指令
<%@ include file="路径"%> <%--先拼接再编译--%>
JSP隐式对象
out.println(new java.util.Date().toLocaleString);
pageContext.request.contextPath
exception.getMessage() <%--仅可应用于错误处理页面--%>
错误处理页面
错误源
<%@page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8" errorPage="错误页面路径"%>
错误处理页面
<%@page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8" isErrorPage="true"%>
JSP动作元素
<jsp:include page="路径" flush="true"/> <%--先编译再拼接--%>
<jsp:forward page="路径"/> <%--请求转发--%>
JavaBean
commons-beanutils-1.9.2.jar
commons-logging-1.2.jar
BeanUtils.setProperty(对象, "属性名", "属性值");
String 属性值 = BeanUtils.getProperty(对象, "属性名");
BeanUtils.populate(对象, Map集合);
EL表达式(Expression Language)
${表达式}
运算符 (1).(2)[](3)算术(4)比较(5)逻辑(6)empty (7)条件 (8)()
解析 (1)访问对象(2)访问对象(3)+-(4)==(5)&&(6)判变量(7)三目(8)优先级
EL隐式对象
${pageContext.} <%--获取对象--%>
${pageScope.} <%pageContext.setAttribute("属性名","page属性的值");%>
${requestScope.} <%request.setAttribute("属性名","request属性的值");%>
${sessionScope.} <%session.setAttribute("属性名","session属性的值");%>
${applicationScope.} <%application.setAttribute("属性名","application属性的值");%>
${param.} <input type="text" name="名称">
${paramValuse.} <input type="text" name="名称"> <input type="text" name="名称">
${cookie.userName.name}=${cookie.userName.value}
JSTL(JSP Standard Tag Library)
jstl.jar
standard.jar
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
输出
<c:out value="${输出值}" default="默认值" escapeXml="true">
当设为false时此处执行否则看成字符串
</c:out>
增加删除
<c:set value="属性值" var="属性名" target="对象名" property="对象属性名" />
<c:remove var="属性名" [scope="{page|request|session|application}"] />
类if判断
<c:if test="判">
当判==true时执行
</c:if>
类switch判断
<c:choose>
<c:when test="判">
执行标签
</c:when>
<c:otherwise>
类default
</c:otherwise>
</c:choose>
循环
<c:forEach var="集合对象属性名" items="集合名" varStatus="集合对象状态记录名"
begin="开始" end="结束" step="增量">
${集合对象属性名.}<%--输出--%>
${集合对象状态记录名.}<%-- count 1开 index 0开 first 是头 last 是尾 --%>
</c:forEach>
url构造
<c:url var="路径名称" value="路径">
<c:param name="名称" value="值"></c:param> <%--直接加?和值--%>
</c:url>
<a href="${路径名称}">超链接</a>
数据库连接
c3p0-0.9.1.2.jar
mysql-connector-java-8.0.15.jar
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<property name="jdbcUrl">
jdbc:mysql://localhost:3306/db_book?
useUnicode=true&characterEncoding=utf-8&
useSSL=false&serverTimezone=GMT%2B8
</property>
<property name="user">root</property>
<property name="password">12356</property>
<property name="initialPoolSize">10</property>
<property name="maxIdleTime">20</property>
<property name="maxPoolSize">100</property>
<property name="minPoolSize">10</property>
</default-config>
</c3p0-config>
import java.sql.SQLException;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class C3p0Utils {
private static DataSource ds;
static {
ds = new ComboPooledDataSource();
}
public static DataSource getDS()
{
return ds;
}
}
数据库操作
commons-dbutils-1.4.jar
QueryRunner r=new QueryRunner(C3p0Utils.getDS());
r.updata(sql, new Object[]{ sql问号补充 });
r.updata(sql, sql问号补充);
r.updata(sql, new Object[]{ sql问号补充 });
r.query(sql, new BeanListHandler<对象类>(对象类.class));
r.query(sql, new BeanHandler<对象类>(对象类.class),new Object[] {sql问号补充});