在jsp页面想显示表里的前10条数据,jsp如何调用servlet,servlet调用javabean显示数据。是直接在jsp页面用<% %>这样的形式取数据吗。
解决方案 »
- 从.NET跳槽到java web开发,好不好?
- tomcat连接池在服务器上出错,但在本机上运行正常
- struts1封装表单 造成中文乱码 过滤器解决
- struts中的ActionForm实例化、填充数据的过程是怎样的?
- 如何得到网站的IP地址?
- 问:一个关于jdbc和java bean的问题
- ibatis处理数据库多列显示成一列处理?不用oracle的wm_concat函数
- 请教一个open flash chart问题?就是饼形图中,tooltip中#total#值它是在哪里计算出来的,有错误也????
- 大家有没有碰到过这种问题,2000server+resin
- 搜索数据库结果为空应该如何判断呢?~~~急~~~
- SSH异常
- JSTL问题
1、浏览器请求Servlet;
2、Servlet准备数据(借助JavaBean或直接用DAO);
3、Servlet将准备好的数据存入request.attribute;
4、Servlet重定向到JSP;
5、JSP直接使用request中的数据,用<%=request.getAttribute("xxoo")%>或${xxoo}
如果你非要用JSP去二次查询Servlet(可能是别人早就开发好,你没得修改的),那么两种做法:
1、在浏览器端用JS脚本,Ajax的方式去请求Servlet数据;
2、直接在服务器端,模拟浏览器请求(HttpClient组件)去请求Servlet。
以上两种方案中,更推荐的是方案一。
1)window.location = "xxx.do"
2)< a href = "xxx.do">
3)window.open("xxx.do")
4) ajax
5) httpclient
6) httpurlconnection
package com.sxz.timecontroal;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.UnknownHostException;
import java.util.Calendar;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.GetMethod;
/**
* 当可以连接网络时,取得网络上的时间使用。
*
* @author sxz 2012/01/29
*/
public class CheckTImeWithNet {
/**
* 获取时间数据所在的网点地址
*/
private static final String NET_TIME_URL = "http://open.baidu.com/special/time/";
/**
* 获取时间数据所在行的key值
*/
private static final String NET_TIME_FIND_KEY_WORD = "window.baidu_time(";
/**
* 网络上的时间
*/
private Calendar netDate = Calendar.getInstance();
/**
* 获取当前 网络上的时间
*/
public Calendar getNetDate() {
return netDate;
}
/**
* 设置当前 网络上的时间
*/
public void setNetDate(long netDate) {
this.netDate.setTimeInMillis(netDate);
}
@SuppressWarnings("finally")
public boolean checkTime() {
boolean flag = true;
try {
// 创建连接
HttpClient httpClient = new HttpClient();
// 设置请求参数
GetMethod getMethod = new GetMethod(NET_TIME_URL);
// 设置读取网页数据时的编码格式
getMethod.addRequestHeader( "Content ", "text/html,charset=GBK");
// 进行网络连接,并获取返回结果code,根据这个code判断,当前是否连接到网络。
int statusCode = httpClient.executeMethod(getMethod);
if(statusCode != 200){
System.out.println("网络数据有问题,有待调整获取资源的途径");
return false;
}
// 获取网页信息
InputStream responseBody = getMethod.getResponseBodyAsStream();
// 设置编码格式
BufferedReader reader = new BufferedReader(new InputStreamReader(responseBody,"GBK"));
// 一行一行的取出信息
String tempBf = null;
while((tempBf=reader.readLine()) != null){
// 寻找有效数据
// window.baidu_time(1327819975724);
int timeRowCheckFlag = tempBf.indexOf(NET_TIME_FIND_KEY_WORD);
// 找到网络时间数据所在行。
if(timeRowCheckFlag > 0){
// 去掉数据中的无用数据,得到时间字符串
// window.baidu_time(1327819975724); ->1327819975724
String netTimeStr = tempBf.replaceAll("[^\\d]", "");
// 当前网络时间
long netTimeMillis = Long.parseLong(netTimeStr);
// 设置当前网络上的时间
this.setNetDate(netTimeMillis);
// 当找到网络上的的时间时,不必再从该网页上读取数据了!
break;
}
}
} catch(UnknownHostException ex){
// 网络连接失败
flag = true;
System.out.println("网络连接失败!");
ex.printStackTrace();
}catch (IOException e) {
flag = true;
System.out.println("IO错误,程序还需要调整!");
e.printStackTrace();
} catch(Exception e){
flag = true;
System.out.println("其他错误,程序还需要调整!");
e.printStackTrace();
}
finally{
return flag;
}
}
}
1、浏览器请求Servlet;
2、Servlet准备数据(借助JavaBean或直接用DAO);
不通过form的action如何达到请求servlet,我现在是在一个页面显示几条数据
是不是只有在web.xml里配置了servlet,jsp页面里即使没有使用<form action="">也自动去请求了servlet