Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пояснительная записка к курсачу по САПИС - 9 баллов.doc
Скачиваний:
250
Добавлен:
01.04.2014
Размер:
640 Кб
Скачать

Приложение г (рекомендуемое) Листинг некоторых файлов, используемых для работы Spring mvc

web.xml

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>

/WEB-INF/applicationContext.xml

/WEB-INF/applicationContext-security.xml

</param-value>

</context-param>

<context-param>

<param-name>javax.faces.PROJECT_STAGE</param-name>

<param-value>Development</param-value>

</context-param>

<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>

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

<servlet>

<servlet-name>dispatcher</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<load-on-startup>2</load-on-startup>

</servlet>

<servlet>

<servlet-name>Upload</servlet-name>

<servlet-class>servlet.Upload</servlet-class>

</servlet>

<servlet>

<servlet-name>Foto</servlet-name>

<servlet-class>servlet.Foto</servlet-class>

</servlet>

<servlet>

<servlet-name>Delete</servlet-name>

<servlet-class>servlet.Delete</servlet-class>

</servlet>

<servlet>

<servlet-name>Faces Servlet</servlet-name>

<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>dispatcher</servlet-name>

<url-pattern>*.htm</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>Upload</servlet-name>

<url-pattern>/Upload</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>Foto</servlet-name>

<url-pattern>/Foto</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>Delete</servlet-name>

<url-pattern>/Delete</url-pattern>

</servlet-mapping>

<servlet-mapping>

<servlet-name>Faces Servlet</servlet-name>

<url-pattern>/faces/*</url-pattern>

</servlet-mapping>

<session-config>

<session-timeout>

30

</session-timeout>

</session-config>

<welcome-file-list>

<welcome-file>faces/faces/welcomeJSF.jsp</welcome-file>

</welcome-file-list>

</web-app>

dispatcher-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:p="http://www.springframework.org/schema/p"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">

<bean class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping"/>

<bean class="controller.PersonController" />

<bean class="controller.RegController" p:regService-ref="regService"/>

<bean class="controller.EditController" p:editService-ref="editService"/>

<bean class="controller.MessageController" />

<bean class="controller.FotoController" />

<bean class="controller.FindController" />

<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">

<property name="mappings">

<props>

<prop key="login.htm">indexController</prop>

</props>

</property>

</bean>

<bean id="viewResolver"

class="org.springframework.web.servlet.view.InternalResourceViewResolver"

p:prefix="/WEB-INF/jsp/"

p:suffix=".jsp" />

<bean name="indexController"

class="org.springframework.web.servlet.mvc.ParameterizableViewController"

p:viewName="index" />

</beans>

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:p="http://www.springframework.org/schema/p"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:tx="http://www.springframework.org/schema/tx"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd

http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">

<bean name="regService" class="service.RegService" />

<bean name="editService" class="service.EditService" />

<bean id="dataSource"

class="org.springframework.jdbc.datasource.DriverManagerDataSource"

p:driverClassName="com.mysql.jdbc.Driver"

p:url="jdbc:mysql://127.0.0.1:3306/vobschage"

p:username="root"

p:password="12345" />

</beans>

MessageController.java

import entity.Messages;

import entity.MessagesPK;

import java.util.Date;

import java.util.Iterator;

import java.util.Random;

import java.util.Set;

import javax.naming.NamingException;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.springframework.security.context.SecurityContextHolder;

import org.springframework.validation.BindException;

import org.springframework.web.servlet.ModelAndView;

import org.springframework.web.servlet.mvc.SimpleFormController;

import session.MessagesFacadeRemote;

import session.UsersFacadeRemote;

public class MessageController extends SimpleFormController {

public MessageController() throws NamingException {

setCommandClass(Name.class);

setCommandName("names");

setSuccessView("redirect:/message.htm");

setFormView("message");

}

@Override

protected Object formBackingObject(HttpServletRequest request) throws Exception {

request.setCharacterEncoding("UTF-8");

String userName = SecurityContextHolder.getContext().getAuthentication().getName();

Name name = new Name();

name.setFields(userName);

UsersFacadeRemote uFR = (UsersFacadeRemote) MyContext.getContext().lookup("HostelServer/UsersFacade/remote");

Set<Messages> setM = uFR.find(userName).getMessagesSet();

setM.addAll(uFR.find(request.getParameter("owner")).getMessagesSet());

Iterator<Messages> iteratorM = setM.iterator();

while(iteratorM.hasNext()){

Messages message = iteratorM.next();

if(!((message.getMessagesPK().getUsername().equals(userName) ||

message.getMessagesPK().getUsername().equals(request.getParameter("owner"))) &&

(message.getMessagesPK().getIdReceiver().equals(userName) ||

message.getMessagesPK().getIdReceiver().equals(request.getParameter("owner"))))){

iteratorM.remove();

}

}

Date date = new Date();

iteratorM = setM.iterator();

Messages[] m = new Messages[setM.size()];

int index = 0;

while(!setM.isEmpty()){

iteratorM = setM.iterator();

Messages messageOld = new Messages();

date = setM.iterator().next().getDateMessage();

Messages message = setM.iterator().next();

messageOld = message;

while(iteratorM.hasNext()){

message = iteratorM.next();

if(message.getDateMessage().before(date)){

date = message.getDateMessage();

messageOld = message;

}

}

m[index] = messageOld;

index++;

setM.remove(messageOld);

}

index--;

int count = index + 1;

request.setAttribute("count", index + 1);

while(index >= 0){

if(m[index].getMessagesPK().getUsername().equals(userName)){

request.setAttribute("who" + String.valueOf(count - index), "Я");

}

request.setAttribute("mes" + String.valueOf(count - index), m[index].getText());

request.setAttribute("date" + String.valueOf(count - index), m[index].getDateMessage());

index--;

}

return name;

}

@Override

protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors) throws Exception {

setSuccessView("redirect:/message.htm?owner=" + request.getParameter("owner"));

Name name = (Name) command;

MessagesFacadeRemote mFR = (MessagesFacadeRemote) MyContext.getContext().lookup("HostelServer/MessagesFacade/remote");

String userName = SecurityContextHolder.getContext().getAuthentication().getName();

Messages message = new Messages();

MessagesPK mpk = new MessagesPK();

mpk.setUsername(userName);

mpk.setIdReceiver(request.getParameter("owner"));

Random r = new Random();

mpk.setIdMessage(r.nextInt(1000000000));

message.setMessagesPK(mpk);

message.setText(name.getMessage());

message.setIsOnWall(0);

Date d = new Date();

message.setDateMessage(d);

mFR.create(message);

ModelAndView mv = new ModelAndView(getSuccessView());

return mv;

}

}

message.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<%@taglib uri="http://www.springframework.org/tags" prefix="spring" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Сообщения</title>

<link href="./hostel.css" rel="stylesheet" type="text/css" />

</head>

<body>

<spring:nestedPath path="names">

<div class="title">В Общаге</div>

<br>

<div class="table">

<div class="tr">

<div class="tdmesl" align="center">

<br/>

<form action="" method="post">

<spring:bind path="message">

<textarea class="textarea" cols="50" rows="20" name="${status.expression}">${status.value}</textarea>

</spring:bind>

<div class="btnSend">

<pre><input type="submit" value="Отправить" /> </pre>

</div>

<br/>

<br/>

</form>

</div>

<div class="tdmesr">История сообщений:

<br/>

<br/>

<table border="1" width="100%">

<%

for(int i = 1; i <= Integer.parseInt(request.getAttribute("count").toString()); i++){

out.print("<tr><td width='20%'>" + request.getAttribute("date" + String.valueOf(i)) + "</td>" +

"<td width='5%'>");

if(request.getAttribute("who" + String.valueOf(i)) != null){

out.print("&nbspЯ&nbsp");

}

else{

out.print("Мне");

}

out.print("</td>" +

"<td width='75%'>" + request.getAttribute("mes" + String.valueOf(i)) + "</td>" +

"</tr>");

}

%>

</table>

</div>

</div>

</div>

</spring:nestedPath>

</body>

</html>

3