检索ServletContext并转换为jsp中的特定对象

时间:2014-10-15 09:55:48

标签: java jsp servlets

我想得到一个连接变量conn来连接数据库。我想要检索一个先前在ServletContext中设置的属性并将其转换为特定的对象。我可以在servlet中执行此操作但是jsp page.how中出现问题使用scriptlet获取应用程序对象时不使用JSTL来转换应用程序对象。请帮助我解决问题。

我认为错误是[来自服务器日志]:MyDatabase无法解析为某种类型。

jsp页面中的代码:

MyDatabase mydata=(MyDatabase)getServletContext().getAttribute("Database");
Connection conn=mydata.getCon();

1 个答案:

答案 0 :(得分:0)

尽量避免使用 Scriplet ,并使用更易于使用且不易出错的JavaServer Pages Standard Tag LibraryExpression Language

使用隐式JSP对象从特定范围获取属性。

${application.myObject}

Read more...


使用SQL Tag Library提供JSTL SQL标记来访问JSP中的数据库。

示例代码:

<sql:setDataSource var="dataSource" 
    driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
    url="jdbc:sqlserver://localhost:1433;databaseName=test" 
    user="" password="" />

<sql:query dataSource="${dataSource}"
    sql="SELECT username from test where username=?" var="result">
    <sql:param value="${param.username}"></sql:param>
</sql:query>

<table width="100%" height="600" border="1" align="center">
    <c:forEach var="row" items="${result.rows}">
        <tr>
            <td><b>${row.username}</b></td>
        </tr>
    </c:forEach>
</table>

注意:最好在Servlet中移动数据库代码,并将生成的对象List传递给客户端。切勿将视图与业务或数据库逻辑混合。分别制作所有图层。