转载

在命令提示符窗口,进入Tomcat目录,执行以下命令:
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore -validity 3600
通过以上步骤生成server.keystore证书文件、

将servlet.xml一下的的注释打开(最好拷贝此段)
<!-- Define a SSL HTTP/1.1 Connector on port 8443 -->  
<Connector protocol="org.apache.coyote.http11.Http11Protocol"    
                     port="8443" maxHttpHeaderSize="8192"  
           maxThreads="150" minSpareThreads="25" maxSpareThreads="75"  
           enableLookups="false" disableUploadTimeout="true"  
           acceptCount="100" scheme="https" secure="true"  
           clientAuth="false" sslProtocol="TLS"                   
           keystoreFile="server.keystore"    
           keystorePass="changeit"/> 
到这一步访问https;//ip:8443/item

一般Tomcat默认的SSL端口号是8443,但是对于SSL标准端口号是443,这样在访问网页的时候,直接使用https而不需要输入端口号就可以访问,如https://loalhost/webserver
想要修改端口号,需要修改Tomcat的server.xml文件:
1.non-SSL HTTP/1.1 Connector定义的地方,一般如下:
     <Connector port="80" maxHttpHeaderSize="8192"
                maxThreads="500" minSpareThreads="25" maxSpareThreads="75"
                enableLookups="false" redirectPort="443" acceptCount="100"
                connectionTimeout="20000" disableUploadTimeout="true" />
将其中的redirectPort端口号改为:443
2.SSL HTTP/1.1 Connector定义的地方,修改端口号为:443,如下:
<Connector    
   port="443" maxHttpHeaderSize="8192"
   maxThreads="150" minSpareThreads="25"
   maxSpareThreads="75"
   enableLookups="false"
   disableUploadTimeout="true"
   acceptCount="100" scheme="https"
   secure="true"
   clientAuth="false" sslProtocol="TLS"
   keystoreFile="conf/tomcat.keystore"
   keystorePass="123456" />
3.AJP 1.3 Connector定义的地方,修改redirectPort为443,如下:
     <Connector port="8009"
                enableLookups="false" redirectPort="443" protocol="AJP/1.3" />

重新启动Tomcat就可以了。到这一步可以形成访问方式 http://ip/item

到tomcat下面的webapps下面的ROOT下面的index.jsp文件的内容
<?xml version="1.0" encoding="ISO-8859-1"?>
  <%response.sendRedirect("/item");%>

修改web.xml文件的内容
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">

  <display-name>Welcome to Tomcat</display-name>
  <description>
     Welcome to Tomcat
  </description>

  <welcome-file-list>
   <welcome-file>/index.jsp</welcome-file>
  </welcome-file-list>
</web-app>
删除lib目录下的lib文件
重启Tomcat服务器,在这一步可以直接通过https:ip来访问项目
在命令提示符窗口,进入Tomcat目录,执行以下命令:
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore -validity 3600
通过以上步骤生成server.keystore证书文件、

 

 

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  5. <title>点击表格行,checkbox自动选中(兼容IE和FF) </title>
  6. <script>
  7. window.onerror = function(sMessage, sUrl, sLine){ //捕捉错误
  8. alert(sMessage + "---------" + sUrl + "-----------" + sLine); 
  9. return true; 
  10. </script>
  11. <script language="JavaScript">
  12. <!--
  13.     var Rows = new Array(); //所有选中的行对象
  14.     var cols = new Array();//所有选中的列对象
  15.     var ShiftStartRow = ""; //Shift多选时存储开始行对象
  16.     
  17.     //选行主函数
  18.     function onfocusit(e)
  19.     {
  20.         var ee=e||window.event;//区别FF和IE
  21.         var iRow = e.target || window.event.srcElement;//区别FF和IE
  22.         do
  23.         {
  24.             iRowiRow=iRow.parentNode;//为了兼容FF和IE,所以用parentNode而不用parentElement
  25.         }while(iRow.tagName!='TR')//选择行的父节点
  26.         //Ctrl多选
  27.         if(e.ctrlKey)//当按下ctrl键时执行
  28.         {
  29.             var j=-1;
  30.             for(i=0;i<Rows.length;i++)//
  31.             {
  32.                 if(iRow==Rows[i])//连续点击某一行多次执行该语句
  33.                 {
  34.                     j=i;//连续点击某一行后改变j的值,这里值为0
  35.                     break;
  36.                 }
  37.             }
  38.             if(j!=-1)//连续点击某行后执行
  39.             {
  40.                 for(i=j;i<Rows.length-1;i++)//这里为什么减一行呢?因为我们实际才用到5行,而总行数是6,也就是只循环5次
  41.                 {
  42.                     Rows[i]=Rows[i+1];//由于j=0的,而我们的有效行数是从1开始的,故而+1
  43.                 }
  44.                 RowsRows.length=Rows.length-1;//重新定义行的总数
  45.             }
  46.             else//没有连续点击某行执行
  47.             {
  48.             
  49.                 Rows[Rows.length]=iRow;//记录最后一次点击的行
  50.             }
  51.             ShiftStartRow=iRow;//记录Shift多选时存储开始行对象
  52.         }
  53.         //Shift多选
  54.         else if(e.shiftKey)//当按下shift键时执行
  55.         {
  56.             if(ShiftStartRow!="")//这个是区分是否执行过ctrl键,如执行过就执行该语句
  57.             {
  58.                 var StartIndex=ShiftStartRow.rowIndex;//记录shift开始行对象,即ctrl键最后一次点击的行
  59.                 var EndIndex=iRow.rowIndex;//记录shift结束行对象,即鼠标点击当前行
  60.                 var oTable=iRow.parentNode;//记录当前行号的父节点
  61.                 Rows.length=0;//初始化行数
  62.                 if(StartIndex < EndIndex)//当开始行行号小于结束行行号执行该语句
  63.                 {
  64.                     for(var i=StartIndex;i<EndIndex+1;i++)
  65.                     {
  66.                         Rows.push(oTable.rows[i]);//将以新元素出现的顺序添加行,可以查看push方法
  67.                     }
  68.                 }
  69.                 if(StartIndex>= EndIndex)//当开始行行号大于或等于结束行行号执行该语句
  70.                 {
  71.                     for(var i=EndIndex;i<StartIndex+1;i++)
  72.                     {
  73.                         Rows.push(oTable.rows[i]);//将以新元素出现的顺序添加行,可以查看push方法
  74.                     } 
  75.                 }
  76.             }
  77.         }
  78.         else//没有执行过ctrl键,执行该语句
  79.         {
  80.             Rows.length=1;//初始化行数
  81.             Rows[0]=iRow;//把点击当前行作为第一行,以作为连续按shift键使用
  82.             ShiftStartRow=iRow;//记录Shift多选时存储开始行对象,以作为连续按shift键使用
  83.         }
  84.         changeColor(iRow);//执行选中行变色函数
  85.         
  86.     }
  87.     
  88.     //选中行变色
  89.     function changeColor(E)
  90.     { 
  91.         for(var i=1;i<E.parentNode.rows.length;i++)//根据当前行的父节点的总行数循环
  92.         {  
  93.             colsE.parentNode.rows[i].getElementsByTagName('td');//记录行的列数
  94.             if(E!=E.parentNode.rows[i]){//判断是否为当前行,如果不是执行该语句
  95.             
  96.                     E.parentNode.rows[i].style.backgroundColor="#FFFFFF";//不是当前行的颜色为白色
  97.                     cols[1].childNodes[0].checked=false;//取消不是当前行的复选框的选种状态
  98.             }
  99.         }
  100.         for(i=0;i<Rows.length;i++)
  101.         {
  102.             colsRows[i].getElementsByTagName('td');//记录行的列数
  103.             if(cols[1].childNodes[0].checked){//复选框为选中状态执行该语句
  104.                 Rows[i].style.backgroundColor="#FFFFFF"
  105.                 cols[1].childNodes[0].checked=false;
  106.             }
  107.             else{//复选框为非选中状态执行该语句
  108.                 Rows[i].style.backgroundColor="#EEEEEE"
  109.                 cols[1].childNodes[0].checked=true;
  110.             }
  111.         }
  112.     }
  113.     
  114.    
  115.     
  116.     function returnfalse()
  117.     {
  118.         return false;
  119.     }
  120.   //-->
  121. </script>
  122. </head>
  123. <body>
  124.     注意:单击选择行,支持Ctrl、Shift键盘操作
  125.     <table border="1" width="100%">
  126.     <tr><td colspan="2" onselectstart="return false">-------------</td></tr>
  127.         <tr onclick="onfocusit(event)" onselectstart="return false"><td>1</td><td><input type="checkbox" name="checkbox" /></td></tr>
  128.         <tr onclick="onfocusit(event)" onselectstart="return false"><td>2</td><td><input type="checkbox" name="checkbox" /></td></tr>
  129.         <tr onclick="onfocusit(event)" onselectstart="return false"><td>3</td><td><input type="checkbox" name="checkbox" /></td></tr>
  130.         <tr onclick="onfocusit(event)" onselectstart="return false"><td>4</td><td><input type="checkbox" name="checkbox" /></td></tr>
  131.         <tr onclick="onfocusit(event)" onselectstart="return false"><td>5</td><td><input type="checkbox" name="checkbox" /></td></tr>
  132.     </table>
  133. </body>
  134. </html>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值