idea j2ee项目使用jstl和连接mysql

idea jstl使用

File->Settings->(可以通过搜索DTD直接到达)Languages & Frameworks->Schemas and DTDs
在这里插入图片描述
External Schemas and DTDs->+
在这里插入图片描述
在uri中输入http://java.sun.com/jsp/jstl/core,File则是c.tld路径

在这里插入图片描述
将其他需要的tld按同样方式添加后,引入jstl里的两个jar。然后,将这两个jar放在WEB-INF目录下的lib文件夹里。在这样存储之前,我是无法正常使用jstl的。
在这里插入图片描述
最后是在jsp里使用了,先在文件开头写上:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

后续就可以调用c标签,例如:

<c:out value="a">a</c:out>

本部分参考:https://www.licoy.cn/2668.html

idea j2ee项目连接mysql 的特殊要求

使用连接mysql的时候,常见的操作当然是添加jar,然后在java文件写对应代码即可。这在eclipse或者使用idea开发普通java项目时没有问题,但在使用idea编写j2ee项目时,却出现了连不上数据库的情况(即报No suitable driver found for jdbc)。
为解决问题而查看是否将jar添加进来时,意外发现idea的Project Setting最下面的一个条目“Problem”有个1的标记。点进去一看,是说mysql对应的jar没有添加进某个iml。fix以后,项目根目录下多了一个j2ee_jsp.iml(j2ee_jsp是项目名),具体位置如下图所示。
在这里插入图片描述
之后在Project Setting的“Moudles”条目下,再次勾选mysql对应jar,并修改后面的属性为provided(英文意思有倘若、只要、假如、规定者),具体如下图。在这里插入图片描述最终成功运行时j2ee_jsp.iml重要内容如下:

<orderEntry type="library" exported="" scope="PROVIDED" name="Tomcat 9.0.30" level="application_server_libraries" />
<orderEntry type="library" exported="" scope="PROVIDED" name="mysql-connector-java-8.0.16" level="project" />

idea 连接mysql通用

File->Project Setting
在这里插入图片描述
Project Setting->Libraries->±>java
在这里插入图片描述
找到mysql对应jar,选中即可。额外说一句,较新版本的mysql要连接时driver = “com.mysql.cj.jdbc.Driver"而不是"com.mysql.jdbc.Driver”(较新版在mysql和jdbc之间多了一个cj)
在这里插入图片描述

附录

jstl1.1.2下载地址

官网http://archive.apache.org/dist/jakarta/taglibs/standard/binaries/
下载jakarta-taglibs-standard-1.1.2.zip即可

j2ee_jsp.iml全文

<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
  <component name="FacetManager">
    <facet type="web" name="Web">
      <configuration>
        <descriptors>
          <deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/web/WEB-INF/web.xml" />
        </descriptors>
        <webroots>
          <root url="file://$MODULE_DIR$/web" relative="/" />
        </webroots>
      </configuration>
    </facet>
  </component>
  <component name="NewModuleRootManager" inherit-compiler-output="true">
    <exclude-output />
    <content url="file://$MODULE_DIR$">
      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
    </content>
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
    <orderEntry type="library" exported="" scope="PROVIDED" name="Tomcat 9.0.30" level="application_server_libraries" />
    <orderEntry type="library" exported="" scope="PROVIDED" name="mysql-connector-java-8.0.16" level="project" />
  </component>
</module>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>动漫搜索</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <script type="text/javascript"> var xmlhttp; function loadXMLDoc(url,cfun) { // alert("hadhfaf"); xmlhttp=new XMLHttpRequest(); xmlhttp.onreadystatechange=cfun; xmlhttp.open("GET",url,true); xmlhttp.send(); } function myfunction(id,times) { //alert("123"); loadXMLDoc("open.jsp?id="+id+"&times="+times+"&t="+Math.random(),function() { //alert(xmlhttp.status); if(xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById(id).innerHTML=xmlhttp.responseText; } }); } </script> <% //currentPage当前显示页数 if (request.getParameter("currentPage") == null||request.getParameter("currentPage").equals("")) { pageContext.setAttribute("currentPage", new Integer(0)); } else { pageContext.setAttribute("currentPage", request .getParameter("currentPage")); } %> <sql:query var="rs" dataSource="jdbc/mysql"> select* from anime </sql:query> <!-- 得到所有记录数 --> <c:set var="resultNum"> <jsp:getProperty name="rs" property="rowCount" /> </c:set> <!-- 每页显示记录数 --> <c:set var="PerPageNum" value="3" /> </head> <style type="text/css"> body{background-color:} </style> <body> <% int perPageNum = Integer.parseInt((String) pageContext .getAttribute("PerPageNum")); int resultNum = Integer.parseInt((String) pageContext .getAttribute("resultNum")); int pageNum; //如果所有记录数除每页显示记录数没有余数-1 if((int)resultNum%perPageNum==0) pageNum = (int)(resultNum / perPageNum-1); else pageNum = (int)(resultNum / perPageNum); pageContext.setAttribute("pageNum", pageNum); %> <div style="border:1px solid #cccccc; width:1100px;margin:100px 0 0 90px"> <table style=" width:1100px;"> <tr> <td>序号</td> <td>热搜动漫</td> <td>动漫简介</td> <td>更新集数</td> <td>搜索指数</td> <td>动漫详情</td> </tr> <c:if test="${currentPage lt 0 }"><!-- 当前显示页小于0 --> <c:set var="currentPage" value="0"></c:set> </c:if> <c:if test="${currentPage gt pageNum}"><!-- 当前显示页大于总页数 --> <c:set var="currentPage" value="${pageNum }"></c:set> </c:if> <c:set var="currentPage" value="${currentPage}" scope="session" /> <!-- 循环查找记录 --> <c:forEach var="row" items="${rs.rows}" begin="${currentPage*PerPageNum}" end="${PerPageNum+currentPage*PerPageNum-1}" > <tr> <td> ${row.id }</td> <td> <img src="image/${row.image}" width="50" height="50"/></td> <td style="width:600"> ${row.introduce}</td> <td> ${row.blues} </td> <td> ${row.times }</td> <c:set var="times" value="${row.times }" scope="session" /> <td> <input type="button" value="展开" onclick="myfunction(${row.id },${row.times })"/> </td> </tr> <tr> <td colspan=6 id="${row.id}"></td> </tr> </c:forEach> </table> <div style="margin:0px 0px 0px 800px"> 总共有${pageNum+1}页-第${currentPage+1}页-<a href="index.jsp?currentPage=${currentPage-1}">上一页</a> - <a href="index.jsp?currentPage=${currentPage+1}">下一页</a> </div> </div> </body> </html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值