不好意思,我新手,不太明白JSP网页如何调用java程序,像执行一些SQL查询之类的java类,是写成javaBean然后JSP直接调用吗?还是怎的 还有个问题就是怎样用java进行sql搜索的,如SQL:"select a,b from table t1,t2 where t1.a=t2.b"这么长的SQL,能不能粘贴一段Java代码出来看看呢?谢谢大侠

解决方案 »

  1.   

    1. jsp页面中<%  %>里面直接可以写java代码
    2. 可以用标签调用JavaBean
    3. 至于sql,你在javabean中怎么写,在<%%>中就怎么写,如果你要是拼接sql字符串,
       只要把握一点:最终的格式和在数据库中直接执行的格式一样
      

  2.   

    建议楼主还是讲sql这个放到后台去吧。。保持页面的纯粹性!
      

  3.   

    服务器启动时加载一个类,将service层的配置文件里的所有bean加载进applicationContext服务器启动时加载一个类,将service层的配置文件里的所有bean加载进applicationContext
      

  4.   

    this.getServletContext().setAttribute(SPRING_CONTEXT,
                        springServices);
      

  5.   

    建议不要在<%%>中写。直接在后台做。在页面用标签显示。放到调用servlet或者action中做显示。在业务逻辑中写具体实现方法。页面只是做显示的。复杂的逻辑在后台实现。
      

  6.   

    package bean;
    import java.sql.*;public class MyDb_Page{
    private Statement stmt;
    private Connection conn=null;
    private ResultSet rs=null;
    private String navi;

    public void connection(String db_name,String user,String pwd) throws  Exception{
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    String url="jdbc:mysql://localhost:3306/" + db_name;
    conn=DriverManager.getConnection(url,user,pwd);
    stmt=conn.createStatement();
    }

    public ResultSet query(String sql) throws Exception{
    rs=stmt.executeQuery(sql);
    return rs;
    }

    public ResultSet query(String query,int size,int page) throws Exception{
    int page_count; //总页数
    int result_count; //总记录数
    int begin; //当前页第一条记录索引号
    String sql=query;
    int i=query.indexOf("from");
    String sql2=query.substring(i);
    rs=query("select count(*) " + sql2);
    rs.next();
    result_count=rs.getInt(1); 
    page_count=(result_count + size - 1)/size;
    begin=(page-1)*size;
    String s=" limit " + begin + "," +size;
    sql=sql + s;
    rs=query(sql);
    //设置导航栏
    String back="没有了";
    String pre="没有了";
    if(page>1) back="<a href=?page=" + String.valueOf(page-1) + ">上一页</a>";
    if(page<page_count) pre="<a href=?page=" + String.valueOf(page+1) + ">下一页</a>";
    navi=back + "      " + pre;
    return rs;
    }

    public String getNavi(){
    return navi;
    }
    public int update(String sql) throws  Exception{
    int n=0;
    n=stmt.executeUpdate(sql);
    return n;
    }

    public boolean delete(String sql) throws  Exception{
    boolean flag=false;
    flag=stmt.execute(sql);
    return flag;
    }
    }
    <jsp:useBean id="db" class="bean.MyDb_Page" scope="page"/>
    <%
    String sql="select * from student";
    ResultSet rs=db.query(sql);
    while(rs.next()){
       out.println(rs.getString(10);
    }
    %>
      

  7.   

    你只要记住 JS实际上是一个servlet的特殊形式,用<%@page import="" %>引入类,在<% %>写java代码就行了,还是建议LZ先看下基础的jsp书籍,做什么都是基础最重要。
      

  8.   

    不知LZ有没有接触过Java Web开发的SSH框架呢,如果接触过,那Java类与jsp页面之间的掉转就比较好理解,像Struts2 中就是用的Action类来实现的。这是后台语言的编写啦~~增加类
    public class Add {
    private String userName;
    private String userPassword;

    public String getUserName() {
    return userName;
    } public void setUserName(String userName) {
    this.userName = userName;
    } public String getUserPassword() {
    return userPassword;
    } public void setUserPassword(String userPassword) {
    this.userPassword = userPassword;
    } public String addUser(){

    Condb db=new Condb();
    Connection con=db.getCon();
    PreparedStatement pstmt=null;
    ResultSet rs=null;
    String str="";
    try {
    pstmt=con.prepareStatement("insert into users values(?,?)");
    pstmt.setString(1, userName);
    pstmt.setString(2,userPassword);
    pstmt.executeUpdate();
    str="success";
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    str="error";
    }
    return str;
    }
    }
    Struts.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- 指定Struts配置文件的DTD信息 -->
    <!DOCTYPE struts PUBLIC
     "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" 
     "http://struts.apache.org/dtds/struts-2.1.dtd">
    <struts>
    <package name="login" extends="struts-default">
    <action name="add" class="controller.Add" method="addUser">
    <result name="success" type="redirect">query.action</result>
    <result name="error">/error.jsp</result>
    </action>
    </package>
    </struts>
    jsp页面:
    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>注册页面</title>
    </head>
    <body>
        <center>
        <h2>注册新用户</h2>
    <form action="add.action" method="post">
    <table border="2" bordercolor="green">
    <tr><td>用户名:</td><td><input type="text" name="userName"/></td></tr>
    <tr><td>密&nbsp;&nbsp;&nbsp;码:</td><td><input type="password" name="userPassword"/></td></tr>
    <tr><td colspan="2"><input type="submit" value="提交" /></td></tr>
    </table>
    </form>
    </center>
    </body>
    </html>
    以上没怎么整理好,但愿楼主能看懂....若想详细了解,可以加Q345743701,一起学习~!
      

  9.   

    也可以用标签把javaBean引到jsp页面中哦 
    <%@ page import="com.javaBean.sqlBean"%>
    再用<% %>直接调用sqlBean里的java方法
      

  10.   

    建议使用dwr来做 这个效果还不错
      

  11.   

    15楼正解,使用dwr多方便啊,这个很好的~~
      

  12.   

    <%@ page import=""%> 导入包
    <%! %> 申明
    <% %>  JAVA代码。JSP就是个Java Servlet。<%! %> 的变量就相当于在类里的成员变量,方法就相当于成员方法。<% %>里的代码相当于Java Servlet 中excute()方法里写。
      

  13.   

    求一个jsp连接mysql的Java-DB类, 并在jsp页面中调用的代码。