我当前运行的Tomcat如下
Tomcat Version : Apache Tomcat/5.5.36
Servlet Specification Version : 2.4
JSP version : 2.0
Run Code Online (Sandbox Code Playgroud)
我需要改成它
Tomcat Version : Apache Tomcat/8.0.14
Servlet Specification Version : 3.1
JSP version : 2.3
Run Code Online (Sandbox Code Playgroud)
我下载了Tomcat版本8,我有以下内容,如何运行Tomcat 8并使其成为服务器的默认设置?
root@server [/opt]# ls
./ cpanel/ pcre/
../ curlssl/ php_with_imap_client/
apache-tomcat-8.0.18/ jdk1.7.0_75/ suphp/
apache-tomcat-8.0.18.tar.gz jdk-7u75-linux-x64.tar.gz xml2/
Run Code Online (Sandbox Code Playgroud)
我尝试了以下命令,但失败了.
root@server [/opt/apache-tomcat-8.0.18/bin]# ./startup.sh
Cannot find apache-tomcat-8.0.18/bin/setclasspath.sh
This file is needed to run this program
Run Code Online (Sandbox Code Playgroud)
在〜/ .bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv …Run Code Online (Sandbox Code Playgroud) 我有一个使用Tile3的Spring MVC应用程序.我有很多静态页面需要将它们嵌入到tile3当前提供的网站模板中.(我需要在所有页面上使用相同的页脚和页眉,无论是动态还是静态,但不确定如何对静态页面进行寻址).
静态页面的示例是index.jsp和aboutus.jsp.如何访问这些静态页面?我应该通过控制器吗?
我知道我可以使用jsp:include但这是一个好习惯吗?因为我正在使用瓷砖,所以没有其他选择吗?本教程建议使用单独的控制器,但我不确定这是否是最佳解决方案.因为它向服务器发送不必要的请求.
如果有比Tiles更好的选择,请告诉我
web.xml中
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 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">
<listener>
<listener-class>org.apache.tiles.extras.complete.CompleteAutoloadTilesListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>springapp</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springapp</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/springapp-servlet.xml</param-value>
</context-param>
</web-app>
Run Code Online (Sandbox Code Playgroud)
tiles.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN"
"http://tiles.apache.org/dtds/tiles-config_2_1.dtd">
<tiles-definitions>
<definition name="baseLayout" template="/WEB-INF/templates/baseLayout.jsp">
<put-attribute name="title" value="Title is here (Tile)"/>
<put-attribute name="header" value="header.jsp"/>
<put-attribute name="menu" value="Title is here (Tile)"/>
<put-attribute name="body" value="Title is here (Tile)"/>
<put-attribute name="footer" value="footer.jsp"/>
</definition> …Run Code Online (Sandbox Code Playgroud) 我正在尝试将Spring安全性与自定义登录页面和对数据库的访问权限添加到我的Spring MVC应用程序中.看起来我的映射是错误的,因为它无法映射j_spring_security_check.
为了解决这个问题,我看了一下以下页面1,2,3,但没能解决这个问题呢.
如果您没有太多时间,请阅读下面的第2部分,即问题的编辑部分开始的地方.否则,请阅读第1 部分和第2部分.
第1部分
我还在我的web.xml文件中添加了以下行,但应用程序返回以下异常.
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Caused by: java.lang.IllegalStateException: Duplicate Filter registration for 'springSecurityFilterChain'. Check to ensure the Filter is only configured once.
at org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer.registerFilter(AbstractSecurityWebApplicationInitializer.java:215)
at org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer.insertSpringSecurityFilterChain(AbstractSecurityWebApplicationInitializer.java:147)
at org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer.onStartup(AbstractSecurityWebApplicationInitializer.java:121)
at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:175)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5423)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 6 more
Jun 13, 2015 2:44:54 PM org.apache.catalina.core.ContainerBase startInternal
SEVERE: A child container failed during …Run Code Online (Sandbox Code Playgroud) 我十分赞同的使用混淆@Controller,@Service并 @Repository在Spring-MVC.
我有几个问题,非常感谢让他们回答.
我知道控制器用于从视图接收请求并向视图发出请求以向用户显示结果.我的问题是,我可以在具有控制器注释的类中进行哪些扩展处理?我是否应该在服务注释类中执行所有处理并保留控制器以接收请求并仅返回响应?我想知道什么是最佳做法?
假设我需要调用不同的服务注释类方法来处理结果,如果我从控制器调用它们或将它们传递给服务注释类?(这只是一个例子)
如果我不想处理结果并且只是愿意向数据库发送请求并接收结果,那么我是否仍需要在控制器和存储库之间安装服务注释类?
假设我收到了产品ID,想要检索并显示产品的详细信息.(这只是一个例子)
我在我的struts.xml和所有表单中添加了一个拦截器,以防止跨站点请求伪造攻击.我想知道我是否还应该做其他事情?比如检索令牌并与提交的表格一起匹配表格,以防它不会自动完成.
<interceptors>
<interceptor-stack name="defaultSecurityStack">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="tokenSession">
<param name="excludeMethods">*</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="defaultSecurityStack"/>
Run Code Online (Sandbox Code Playgroud)
所有表格都有
<s:form ...>
<s:token/>
...
</s:form>
Run Code Online (Sandbox Code Playgroud) 我知道将facebook登录与Java应用程序集成有两种方法:
1)使用Facebook代码(JavaScript)
我可以使用Facebook 提供的代码自爆允许用户登录,但问题是,我不知道如何将用户的详细信息发送到后端.如果我使用Javascript函数将响应对象发送到后端它可以是黑客可以访问(假设我使用Ajax将登录用户的电子邮件发送到后端).还有其他办法吗?
2)Spring Social - Facebook
我知道我可以使用Spring Social,但问题是它基于Spring Web框架,似乎很难将它与Struts2集成,因为它使用的是/ connect/facebook等注释.和重定向代码,如
<!DOCTYPE html>
<html>
<head>
<title>Facebook Login JavaScript Example</title>
<meta charset="UTF-8">
</head>
<body>
<script>
// This is called with the results from from FB.getLoginStatus().
function statusChangeCallback(response) {
console.log('statusChangeCallback');
console.log(response);
// The response object is returned with a status field that lets the
// app know the current login status of the person.
// Full docs on the response object can be found in the …Run Code Online (Sandbox Code Playgroud) 我需要建立友谊关系.我有一个友谊类,有两个主键,每个主键都是一个成员类.我收到以下异常:
org.hibernate.MappingException: Foreign key (FK_8ynretl1yt1xe3gcvfytrvpq:Friendship [])) must have same number of columns as the referenced primary key (Member [username])
Run Code Online (Sandbox Code Playgroud)
友谊
@Entity
public class Friendship implements Serializable {
/**
*
*/
private static final long serialVersionUID = -1234656876554786549L;
@Id
@ManyToOne
Member requester;
@Id
@ManyToOne
Member friend;
@Temporal(javax.persistence.TemporalType.DATE)
Date date;
Run Code Online (Sandbox Code Playgroud)
会员
@Entity
public class Member {
@Id
@MapsId
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "username")
Credential credential;
@Column(nullable = false)
String fname;
@Column(nullable = false)
String lname;
@Column(nullable = false)
short gender;
Run Code Online (Sandbox Code Playgroud)
凭据 …
我有三个hashCode方法如下,我根据它们的效率优先考虑它们.我想知道是否有任何其他方法来制作更有效的hashCode方法.
1) public int hashCode() { //terrible
return 5;
}
2) public int hashCode() { //a bit less terrible
return name.length;
}
3) public int hashCode() { //better
final int prime = 31;
int result = 1;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
Run Code Online (Sandbox Code Playgroud) 我有一个方法如下,{code} 应该只接受 A、B 或 C。
我知道解决这个问题的一种方法是定义三种方法(每种情况一个),但这不是一种有效的方法。另一种方法是使用包含 switch case 的单一方法,但是有没有更好的方法呢?
@RequestMapping(value = "{code}/selection", method = RequestMethod.GET)
public String showSelectionOptions(@PathVariable String code){
switch(code){
case A:
case B:
case C:
return "selection";
default:
return "error";
}
Run Code Online (Sandbox Code Playgroud)