怎么让jsp的按钮,每次点击后都能执行一个java类
我现在做一个小项目,就1个jsp页面,里面有3个按钮。
每次点击按钮时执行一个java类,然后把结果输出到jsp页面上。
请问怎么实现呢?用ajax什么的行吗?或者jsp页面里嵌套一个jsp页面行吗?
[解决办法]
每次点击按钮时执行一个java类,然后把结果输出到jsp页面上???
那你还不如在jsp里内嵌java程序,知道在jsp页面 <% %> 的作用吧?这标签里面写的是java程序,那你就可以点击按钮执行这里面的java程序了。
[解决办法]
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("系统错误...");
}
});
[解决办法]
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();
}
[解决办法]
下面是一个jquery的办法。强烈推荐
$("#buttonname").live("onclick",functin(){
//ajax
$.post('action.html',{
value : value
},function(data,state){
//data就是你请求之后传回的值
//state:ajax请求状态
alert(data);
})
});