2. 在用户发送请求数据时经常出现中文乱码问题,按照请求数据发送的get和post方式分别给出解决方案。
答:
Get请求解决中文乱码:
由于参数是通过URL传递的,所以通过request设置的编码格式是不起作用的,此时可以在每次发生请求之前对URL进行编码:
例如:Location.href="/encodeURI"("http://localhost/test/s?name=中文&sex=女");
当然也有更简便的方法,那就是在服务器端配置URL编码格式:
修改tomcat的配置文件server.xml:
<Connector URIEncoding="UTF-8"
port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
connectionTimeout="20000" disableUploadTimeout="true" />
只需增加 URIEncoding="UTF-8" 这一句,然后重启tomcat即可。
Post请求解决中文乱码:
只要设置请求编码request.setCharacterEncoding("utf-8");
3.请给出要实现多页面共享session的核心代码(设置cookie的最大有效期)。
阅读下列程序(JiSuanQi.java和act.jsp),回答问题。
文件名称:JiSuanQi.java
package jisuan;
public class JiSuanQi {
private String value1;
private String value2;
private String op;
public JiSuanQi() {
value1 = "";
value2 = "";
op = ""; }
public void setValue1(String v1) {
value1 = v1; }
public void setValue2(String v2) {
value2 = v2; }
public void setOp(String o) {
op = o; }
public String jiSuan() {
int v1 = Integer.parseInt(value1);
int v2 = Integer.parseInt(value2);
int result=0;
if(op.equals("+")) {
result = v1 + v2; }
else if(op.equals("-")) {
result = v1 - v2; }
else if(op.equals("*")) {
result = v1 * v2; }
else {
result = v1 / v2; }
return ""+result; }}
文件名称:act.jsp
<jsp:useBean class="jisuan.JiSuanQi" scope="page" id="jisuanqi"/>
<jsp:setProperty name="jisuanqi" property="value1" value="4012"/>
<jsp:setProperty name="jisuanqi" property="value2" value="2"/>
<jsp:setProperty name="jisuanqi" property="op" value="/"/>
<%
String result=jisuanqi.jiSuan();
out.println(“result is:”+result);
%>
(1)写出act.jsp中使用的JavaBean的名称(类的全名)。
答:jisuan.JiSuanQi
(2)访问act.jsp页面,写出该页面的输出结果。(要求写出如何得出结果的全过程)
答:result is : 2006
第一步:
<jsp:useBean class="jisuan.JiSuanQi" scope="page" id="jisuanqi"/>
使用useBean创建jisuanqi对象
第二步:
<jsp:setProperty name="jisuanqi" property="value1" value="4012"/>
调用 jisuanqi.setValue1(String v1)方法 ,将值付给jisuanqi的value1属性
第三步:
<jsp:setProperty name="jisuanqi" property="value2" value="2"/>
调用 jisuanqi.setValue2(String v2)方法 ,将值付给jisuanqi的value2属性
第四步:
<jsp:setProperty name="jisuanqi" property="op" value="/"/>
调用 jisuanqi.setOp(String o)方法 ,将”/”值付给jisuanqi的op属性
第五步:
String result=jisuanqi.jiSuan();调用 jiSuan()方法 实现两个数除法运行。
所以输出: 2006
此题重复:
4. 在用户发送请求数据时经常出现中文乱码问题,按照请求数据发送的get和post方式分别给出解决方案。
此题替代:
2. 写出用户注册界面reg.jsp的代码(包括用户名[文本类型]name、密码[密码类型]pwd、性别[单选类型]sex、兴趣爱好[多选类型]hobby)。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'reg.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<form action="" method="post">
用户名: <input type="text" name="name"><br/>
密码 : <input type="password" name="pwd"> <br/>
性别: <input type="radio" name="sex" value="男">男 <input type="radio" name="sex" value="女">女<br/>
兴趣爱好:<input type="checkbox" name="hobby" value="乒乓球"> 乒乓球 <input type="checkbox" name="hobby" value="足球"> 足球
<input type="submit" value="注册">
</form>
</body>
</html>
3. 编写save.jsp将第2题用户注册界面的信息(用户名、密码)保存到mysql数据库db的表user(Name,Pwd)中
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.DriverManager"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
try{
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/db";
Connection conn =DriverManager.getConnection(url, "root","root");
String name=request.getParameter("name");
String Pwd=request.getParameter("Pwd");
Statement statement= conn.createStatement();
statement.execute("insert into user(name,pwd) values('"+name+"','"+Pwd+"') ");
statement.close();
conn.close();
}catch(Exception e)
{
System.out.println("驱动加载失败!");
e.printStackTrace();
}
%>
定义一个JAVABEAN,名称为TaxRate其中含有二个属性,名称为product与rate,数据类型分别为String和double,请编写一个JSP页面实现对上述TaxRate中二个简单属性的存取
public class TaxRate {
private String product;
private double rate;
public String getProduct() {
return product;
}
public void setProduct(String product) {
this.product = product;
}
public double getRate() {
return rate;
}
public void setRate(double rate) {
this.rate = rate;
}
}
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<jsp:useBean id="taxRate" class="TaxRate" scope="page"></jsp:useBean>
<jsp:setProperty property="product" name="taxRate" value="电风扇"/>
<jsp:setProperty property="rate" name="taxRate" value="15.5"/>
<jsp:getProperty property="product" name="taxRate"/><br/>
<jsp:getProperty property="rate" name="taxRate"/>
</body>
</html>
5.阅读下面程序并填空
package com.dcgie.jdbc.dao;
import java.sql.*;
public class BaseDao {
//
连接数据库sql2005
private final static String Driver ="com.microsoft.sqlserver.jdbc.SQLServerDriver";
//是连接数据库sql2005
private finalstatic String Url="jdbc:sqlserver://localhost:1433;DatabaseName=wlb";
//登录数据库的帐号
private final static String userid="sa";
//密码
private final static String pwd="123456";
public Connection getConn(){
Connection conn=null;
try{
Class._forName(Driver )_____________;
conn =______DriverManager_____.getConnection(___Url______,____userid_____,___pwd______);
}catch(Exception e)
{
System.out.println("驱动加载失败!");
e.printStackTrace();
}
return____conn_____;
}
public void closeAll(Connection conn){
try{
if(conn!=null){
____conn.close()__________
}
}catch(Exception e)
{
System.out.println("conn关闭发生失败!");
e.printStackTrace();
}
}
}