怎么让jsp的按钮,每次点击后都能执行一个java类

charlesxu 2012-09-11 05:01:27
我现在做一个小项目,就1个jsp页面,里面有3个按钮。

每次点击按钮时执行一个java类,然后把结果输出到jsp页面上。

请问怎么实现呢?用ajax什么的行吗?或者jsp页面里嵌套一个jsp页面行吗?
...全文
1159 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangweifeng23 2012-09-18
  • 打赏
  • 举报
回复
ajax可以实现!我可以给你一个类似的例子:
这是js代码:var xmlHttp2 =false;
var username;
var password;
var code;
//创建XMLHttpRequest实例
var http_request = false;
function createXMLHttpRequest2() {
xmlHttp2 = false;
if (window.XMLHttpRequest) { // Mozilla浏览器
xmlHttp2 = new XMLHttpRequest();
if (xmlHttp2.overrideMimeType) {
xmlHttp2.overrideMimeType('text/xml'); //设置MIME类别
}
} else if (window.ActiveXObject) { // IE浏览器
try {
xmlHttp2 = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp2 = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
}
function checkuser(){
createXMLHttpRequest2();
username=document.form1.username.value;
password=document.form1.password.value;
code=document.form1.code.value;
var url = "User.do?flag=0&username="+username+"&password="+password+"&input="+code;
xmlHttp2.open("get",url,true);
xmlHttp2.onreadystatechange=callback2;
xmlHttp2.send(null);

}
function callback2() {
if (xmlHttp2.readyState == 4) {
if (xmlHttp2.status == 200) {
if(xmlHttp2.responseText=="code"){
document.getElementById("spanid").innerHTML="验证码错误!";
}else if(xmlHttp2.responseText=="false"){
document.getElementById("spanid").innerHTML="用户名或密码不正确!";
}else{
location="Product.do?flag=1";
}
}else{
alert("请求失败,错误码=" + xmlHttp2.status);
}
}
}
这是html页面代码:
<form action="javascript:checkuser()" name="form1" onsubmit="return check()" method="post">
<div style="color:red"><span id="spanid"></span></div>
<table>
<tr><td>用户名:</td><td><input type="text" name="username"></td></tr>
<tr><td>密  码:</td><td><input type="password" name="password"></td></tr>
<tr><td>验证码:</td><td><input type="text" name="code" onchange=""></td></tr>
<tr><td></td>
<td><script>document.write("<img border=0 src=images.jsp?rand="+Math.random()*10000+">");</script></td></tr>
<tr><td><input type="submit" value="登陆"></td><td><input type="reset" value="取消"></td></tr>
</table>
</form>
这是servlet里的一个方法:
private void checkuser(HttpServletRequest request,HttpServletResponse response )
throws ClassNotFoundException, NamingException, SQLException, IOException, ServletException{
HttpSession session=request.getSession();
String username=new String(request.getParameter("username").getBytes("ISO8859_1"),"gbk");
String password=new String(request.getParameter("password").getBytes("ISO8859_1"),"gbk");
String input=new String(request.getParameter("input").getBytes("ISO8859_1"),"gbk");
String rand = (String)session.getAttribute("rand");
Connection conn=null;
conn=ConnectionDB.getConnection();
String sql="select * from userinfo where username='"+username+"' and password='"+password+"'";
Statement stmt=null;
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet rs=stmt.executeQuery(sql);
System.out.print(sql);
response.setContentType("text/html;charset=GB18030");
PrintWriter out=response.getWriter();
if(input.equals(rand)){
if(rs.next()){
session.setAttribute("userrole", rs.getString("userrole"));
session.setAttribute("username", rs.getString("username"));
out.print(rs.getString("userrole"));
}else{
out.print("false");
}
}else{
out.print("code");
}
out.close();
}
wilson小顺 2012-09-18
  • 打赏
  • 举报
回复
servlet就可以了
zzylmt 2012-09-18
  • 打赏
  • 举报
回复
下面是一个jquery的办法。强烈推荐

$("#buttonname").live("onclick",functin(){

//ajax
$.post('action.html',{
value : value
},function(data,state){
//data就是你请求之后传回的值
//state:ajax请求状态
alert(data);
})
});
jya126 2012-09-17
  • 打赏
  • 举报
回复
servlet就可以了
JsonJu 2012-09-17
  • 打赏
  • 举报
回复
没用Sturcts就教你一个简单的办法吧
你把你的Java类都封装成jsp文件,然后按钮点过以后直接定位到那个**.jsp就可以了
hepeng_8 2012-09-13
  • 打赏
  • 举报
回复
	if(''!=thi.value){
jQuery.ajax({
url:'<%=request.getContextPath()%>/ajax/form/define/formFefineAjaxAction.do?submitobject=dept&queryId='+thi.value,
type : "post",
dataType:'json',
success : function(data) {
$("#deptname").empty();
$("#deptname").append("<option value=''></option>");
if(data.data.modulars.length!=0){
for(var i =0;i<data.data.modulars.length;i++){
var value= data.data.modulars[i];
$("#deptname").append("<option value=" + value.fkUserid + " title ="+value.dutyName+">" + value.dutyName+ "</option>");
}
}else{
alert("此部门下没有责任人!");
}
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
alert("系统错误...");
}
});
hepeng_8 2012-09-13
  • 打赏
  • 举报
回复
if(''!=thi.value){
jQuery.ajax({
url:'<%=request.getContextPath()%>/ajax/form/define/formFefineAjaxAction.do?submitobject=dept&queryId='+thi.value,
type : "post",
dataType:'json',
success : function(data) {
$("#deptname").empty();
$("#deptname").append("<option value=''></option>");
if(data.data.modulars.length!=0){
for(var i =0;i<data.data.modulars.length;i++){
var value= data.data.modulars[i];
$("#deptname").append("<option value=" + value.fkUserid + " title ="+value.dutyName+">" + value.dutyName+ "</option>");
}
}else{
alert("此部门下没有责任人!");
}
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
alert("系统错误...");
}
});
CrazyBugCoder 2012-09-13
  • 打赏
  • 举报
回复
ajax可以实现的,用ajax可以不刷新页面,如果业务需求没有要求不能刷新,不用ajax也行。直接提交给servlet或jsp,处理完了再返回本页面即可
charlesxu 2012-09-13
  • 打赏
  • 举报
回复
我查了下jquery内嵌的Ajax能实现这个功能,但是没找到例子。

比如我有个jsp页面a.jsp和1个java类b.java。我在jsp页面上点击按钮怎么执行java类,并把结果返回到页面上?

能不能告诉我几个关键词,我可以到百度上搜,或者有实际的例子。

注:项目比较简单没用struct框架,就是简单的jsp和java类。
jsp里嵌java代码<%%>是不行的,因为jsp页面仅在加载时执行一次java代码,我想每次点击按钮都能重复调 用java类,并返回值
这个用户很懒 2012-09-13
  • 打赏
  • 举报
回复
1:ajax
2:表单或链接请求一个action,结束后跳转回本页
blueprint1988 2012-09-12
  • 打赏
  • 举报
回复
使用ajax可以达到你想要的效果
zkmzge 2012-09-12
  • 打赏
  • 举报
回复
点击不同的按钮提交不同的表单
天使小宝 2012-09-11
  • 打赏
  • 举报
回复
用ajax请求后台,根据后台传回的值再输出的页面上,类似于一下代码:

//action.html为请求后台的url路径
//value:为传到后台的值
$.post('action.html',{
value : value
},function(data,state){
//data就是你请求之后传回的值
//state:ajax请求状态
alert(data);
})
road_16 2012-09-11
  • 打赏
  • 举报
回复
ajax可以,servlet都行
dengsilinming 2012-09-11
  • 打赏
  • 举报
回复
用ajax可以实现
General-M 2012-09-11
  • 打赏
  • 举报
回复
js控制提交到不同的后台类
wsyangzuda 2012-09-11
  • 打赏
  • 举报
回复
每次点击按钮时执行一个java类,然后把结果输出到jsp页面上???

那你还不如在jsp里内嵌java程序,知道在jsp页面 <% %> 的作用吧?这标签里面写的是java程序,那你就可以点击按钮执行这里面的java程序了。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧