最近在练习javaweb,把书上的习题拿出来做一做。感觉还是有点收获的。
第一题:用表达式语言测试并显示:
(1)Cookie中的某个值
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String str="12";
Cookie cookie=new Cookie("number",str);
response.addCookie(cookie);
%>
${cookie.number.value }
</body>
</html>
(2)web.xml中的某个参数
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
<display-name>JspLearning</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<context-param>
<param-name>encoding</param-name >
<param-value>Usx</param-value >
</context-param>
</web-app>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
initParam(初始化参数)encoding的值是:${initParam.encoding}
</body>
</html>
(3)page、request、session、application中某个值
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
pageContext.setAttribute("pageMsg","Welcome!");
request.setAttribute("requestMsg","do");
session.setAttribute("sessionMsg","it");
application.setAttribute("applicationMsg", "just");
%>
${pageScope.pageMsg}<br>
${requestScope.requestMsg}<br>
${sessionScope.sessionMsg}<br>
${applicationMsg}<br>
</body>
</html>
第二题,开发图书信息模糊查询界面,输入图书名称的模糊信息,能够显示所有图书的ID、名称和价格。如果图书价格在50元以上,则以黄色字体显示名称。
这题比较麻烦,我在网上找不到sql:query模糊查询的方法,要看Java原始代码的话量又太大,而且我实在不能理解为什么能用JSP不用非要用JSTL,以后如果工作有遇到我再从jstl.jar看起吧。所以我只做了普通查询的代码,这个代码网上有很多。模糊查询用JSP的话只要String query="select * FROM t_book where bookname like '%"+a+"%'";
就行了,这里不赘述了。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*,java.sql.*"%>
<!DOCTYPE html>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
// String name=(String)session.getAttribute("sname");
String bookname=request.getParameter("bookname");
String sname=new String(bookname.getBytes("UTF-8"));
%>
<!-- 配置数据源 -->
<sql:setDataSource driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/web003?useUnicode=true&characterEncoding=utf-8"
user="root"
password="123456" scope="session"/>
<sql:query var="result" >
select BOOKID,BOOKNAME,BOOKPRICE from T_BOOK where BOOKNAME =?
<sql:param value="<%=sname %>"></sql:param>
</sql:query>
<table bgcolor="grey" border="1">
<tr>
<td>BOOKID</td>
<td>BOOKNAME</td>
<td>BOOKPRICE</td>
</tr>
<c:forEach items="${result.rows}" var="book">
<c:if test="${book.BOOKPRICE>50}">
<tr>
<td>${book.BOOKID}</td>
<td><font color=yellow>${book.BOOKNAME}</font></td>
<td>${book.BOOKPRICE}</td>
</c:if>
<c:if test="${book.BOOKPRICE<=50}">
<tr>
<td>${book.BOOKID}</td>
<td>${book.BOOKNAME}</td>
<td>${book.BOOKPRICE}</td>
</tr>
</c:if>
</c:forEach>
</table>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*,java.sql.*"%>
<!DOCTYPE html>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
// String name=(String)session.getAttribute("sname");
String bookname=request.getParameter("bookname");
String sname=new String(bookname.getBytes("UTF-8"));
%>
<!-- 配置数据源 -->
<sql:setDataSource driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/web003?useUnicode=true&characterEncoding=utf-8"
user="root"
password="123456" scope="session"/>
<sql:query var="result" >
select BOOKID,BOOKNAME,BOOKPRICE from T_BOOK where BOOKNAME =?
<sql:param value="<%=sname %>"></sql:param>
</sql:query>
<table bgcolor="grey" border="1">
<tr>
<td>BOOKID</td>
<td>BOOKNAME</td>
<td>BOOKPRICE</td>
</tr>
<c:forEach items="${result.rows}" var="book">
<c:if test="${book.BOOKPRICE>50}">
<tr>
<td>${book.BOOKID}</td>
<td><font color=yellow>${book.BOOKNAME}</font></td>
<td>${book.BOOKPRICE}</td>
</c:if>
<c:if test="${book.BOOKPRICE<=50}">
<tr>
<td>${book.BOOKID}</td>
<td>${book.BOOKNAME}</td>
<td>${book.BOOKPRICE}</td>
</tr>
</c:if>
</c:forEach>
</table>
</body>
</html>